#!/usr/bin/perl =begin metadata Name: dirname Description: print the directory name of a path Author: Michael Mikonos Auhtor: Abigail, perlpowertools@abigail.be License: perl =end metadata =cut use strict; use File::Basename qw(basename dirname); use Getopt::Std qw(getopts); my $Program = basename($0); our $VERSION = '1.3'; getopts('') or usage(); usage() unless scalar(@ARGV) == 1; my $path = shift; my $dir = dirname($path); print $dir, "\n"; exit 0; sub VERSION_MESSAGE { print "$Program version $VERSION\n"; exit 0; } sub usage { warn "usage: $Program string\n"; exit 1; } __END__ =pod =head1 NAME dirname - print the directory name of a path =head1 SYNOPSIS dirname string =head1 DESCRIPTION I<dirname> prints the directory component of a path. Everything starting from the last I</> (or whatever the path separator is on your OS) is deleted. =head2 OPTIONS =over 4 =item * --version =back =head1 ENVIRONMENT The working of I<dirname> is not influenced by any environment variables. =head1 BUGS I<dirname> has no known bugs. =head1 STANDARDS This I<dirname> implementation is compliant with the B<IEEE Std1003.2-1992> specification, also known as B<POSIX.2>. This I<dirname> implementation is compatible with the B<OpenBSD> implementation. =head1 AUTHOR This implementation of I<dirname> was adapted by Michael Mikonos. The original version was written by Abigail, but the code was completely replaced. =head1 COPYRIGHT and LICENSE This program is copyright by Abigail, 1999, and Michael Mikonos, 2024. This program is free and open software. You may use, copy, modify, distribute and sell this program (and any modified variants) in any way you wish, provided you do not restrict others to do the same. =cut