Yep I did really want FindBin, as I did not know the possible problems with $0,



-----Original Message-----
From: NYIMI Jose (BMB) [mailto:[EMAIL PROTECTED]] 
Sent: 21 January 2003 10:13
To: Brian Ling; Mark Goland
Cc: perl
Subject: RE: Path to script


> -----Original Message-----
> From: Brian Ling [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, January 21, 2003 10:59 AM
> To: NYIMI Jose (BMB); Mark Goland
> Cc: perl
> Subject: RE: Path to script
> 
> 
> Thanks for that,
> 
> I'll go with the File::Basename option as I may need to
> change the 'pwd' by the time the call is made.

Be aware that $0 doesn't always contains the full path of your script
Example: myhost:> ./myscript.pl
Running a script with above command line, $0 will be ./myscript.pl So File::Basename 
will no longer help.

So I suggest you using FindBin module instead:

C:\>perldoc FindBin
NAME
    FindBin - Locate directory of original perl script

SYNOPSIS
     use FindBin;
     use lib "$FindBin::Bin/../lib";

     or

     use FindBin qw($Bin);
     use lib "$Bin/../lib";

DESCRIPTION
    Locates the full path to the script bin directory to allow the use of
    paths relative to the bin directory.

    This allows a user to setup a directory tree for some software with
    directories <root>/bin and <root>/lib and then the above example will
    allow the use of modules in the lib directory without knowing where the
    software tree is installed.

    If perl is invoked using the -e option or the perl script is read from
    "STDIN" then FindBin sets both "$Bin" and "$RealBin" to the current
    directory.

EXPORTABLE VARIABLES
     $Bin         - path to bin directory from where script was invoked
     $Script      - basename of script from which perl was invoked
     $RealBin     - $Bin with all links resolved
     $RealScript  - $Script with all links resolved

KNOWN BUGS
    if perl is invoked as

       perl filename

    and *filename* does not have executable rights and a program called
    *filename* exists in the users "$ENV{PATH}" which satisfies both -x and
    -T then FindBin assumes that it was invoked via the "$ENV{PATH}".

    Workaround is to invoke perl as

     perl ./filename

AUTHORS
    FindBin is supported as part of the core perl distribution. Please send
    bug reports to <[EMAIL PROTECTED]> using the perlbug program included
    with perl.

    Graham Barr <[EMAIL PROTECTED]> Nick Ing-Simmons <[EMAIL PROTECTED]>

COPYRIGHT
    Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved.
    This program is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

> 
> Brian
> 
> -----Original Message-----
> From: NYIMI Jose (BMB) [mailto:[EMAIL PROTECTED]]
> Sent: 21 January 2003 09:48
> To: Mark Goland; Brian Ling
> Cc: perl
> Subject: RE: Path to script
> 
> 
> Have a look to :
> 
> http://search.cpan.org/author/LIBERTY/Cwd-2.06/Cwd.pm
> 
> José.
> 
> 
> > -----Original Message-----
> > From: Mark Goland [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, January 21, 2003 10:42 AM
> > To: Brian Ling
> > Cc: perl
> > Subject: Re: Path to script
> > 
> > 
> > my $path=`pwd` on *nix
> > my $path=`cd` on win*
> > 
> > ----- Original Message -----
> > From: "Brian Ling" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Tuesday, January 21, 2003 4:25 AM
> > Subject: Path to script
> > 
> > 
> > > Hi all,
> > > 
> > > I have the following bit of code that works out the
> > directory path to
> > > the currently executing script.
> > > 
> > > My $path = $0;
> > > $path =~ s#(^/.+/).+$#$1# ;
> > > 
> > > This works but doesn't make me happy, is there a better way?
> > > 
> > > Thanks
> > > 
> > > Brian
> > > 
> > > 
> > > 
> > > BBCi at http://www.bbc.co.uk/
> > > 
> > > This e-mail (and any attachments) is confidential and may contain 
> > > personal views which are not the views of the BBC unless
> > specifically
> > > stated.
> > > If you have received it in error, please delete it from
> > your system, do
> > > not use, copy or disclose the information in any way nor act in
> > > reliance on it and notify the sender immediately. Please
> > note that the
> > > BBC monitors e-mails sent or received. Further communication will
> > > signify your consent to this.
> > > 
> > > 
> > 
> > --
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> 
> **** DISCLAIMER ****
> 
> "This e-mail and any attachment thereto may contain
> information which is confidential and/or protected by 
> intellectual property rights and are intended for the sole 
> use of the recipient(s) named above. 
> Any use of the information contained herein (including, but 
> not limited to, total or partial reproduction, communication 
> or distribution in any form) by other persons than the 
> designated recipient(s) is prohibited. 
> If you have received this e-mail in error, please notify the 
> sender either by telephone or by e-mail and delete the 
> material from any computer".
> 
> Thank you for your cooperation.
> 
> For further information about Proximus mobile phone services
> please see our website at http://www.proximus.be or refer to 
> any Proximus agent.
> 
> 
> 
> BBCi at http://www.bbc.co.uk/
> 
> This e-mail (and any attachments) is confidential and may contain
> personal views which are not the views of the BBC unless specifically 
> stated.
> If you have received it in error, please delete it from your 
> system, do 
> not use, copy or disclose the information in any way nor act in 
> reliance on it and notify the sender immediately. Please note 
> that the 
> BBC monitors e-mails sent or received. Further communication will 
> signify your consent to this.
> 
> 


BBCi at http://www.bbc.co.uk/

This e-mail (and any attachments) is confidential and may contain 
personal views which are not the views of the BBC unless specifically 
stated.
If you have received it in error, please delete it from your system, do 
not use, copy or disclose the information in any way nor act in 
reliance on it and notify the sender immediately. Please note that the 
BBC monitors e-mails sent or received. Further communication will 
signify your consent to this.


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to