on Wed, 04 Sep 2002 06:23:20 GMT, [EMAIL PROTECTED] (Anidil
Rajendran) wrote: 

> expand the filename manually with substitution
> 
> $filename =~ s{ ^  ~  ( [^/]* ) }
>                       { $1
>                            ? (getpwnam($1)) [7]
>                            : ( $ENV{HOME} || $ENV{LOGDIR}
>                                   || (getpwuid($>)) [7]
>                                      )
> }ex;
> 
> The auther says the following can me matched
> ~user
> ~user/blah
> ~
> ~/blah
> 
> Could someone make me clear how these can be matched by the
> pattern inside the parenthesis which is ( [^/]*)

The "real" pattern, after removing the whitespace allowed by using 
the /x modifier is:
   
    /^~([^/]*)/

Which means: match '~' at the beginning of the string, then match and 
store in $1 any number (including none) of characters up to but not 
including the first '/'.

You will have:

    filename      $1
    ~user         user
    ~user/blah    user
    ~             (empty string)
    ~/blah        (empty string)

-- 
felix


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

Reply via email to