In article <[EMAIL PROTECTED]>,
 [EMAIL PROTECTED] (Ken Williams) wrote:

> On Apr 1, 2006, at 2:49 AM, kurtz le pirate wrote:
> 
> > hello,
> >
> > mac os x store file name in utf-8 format. so, how to open file with
> > "special" characters in name ?
> >
> > a very simple exemple is a file name that begin with space. if i  
> > write :
> > open(FILE," Read in a file"), perl return an error:
> >   *** can't open [ Read in a file] : No such file or directory
> 
> That's just because open() trims whitespace from the front of the  
> argument.  See the open() docs in perlfunc:
 
> --------------
> ...
> The filename passed to 2-argument (or 1-argument) form of open() will
> have leading and trailing whitespace deleted, and the normal
> redirection characters honored.  This property, known as "magic open",
> can often be used to good effect.  A user could specify a filename of
> F<"rsh cat file |">, or you could change certain filenames as needed:
> 
>      $filename =~ s/(.*\.gz)\s*$/gzip -dc < $1|/;
>      open(FH, $filename) or die "Can't open $filename: $!";

that is i found too !!



> Use 3-argument form to open a file with arbitrary weird characters in  
> it,
> 
>      open(FOO, '<', $file);
> 
> otherwise it's necessary to protect any leading and trailing whitespace:
> 
>      $file =~ s#^(\s)#./$1#;
>      open(FOO, "< $file\0");

humm... in the "wanted function" i write :
065:  sub process {
066:    if (-f $_) {
067:      $_ =~ s/ /\ /g;
068:      my $thisSize = stat($_)->size;
069:      if($thisSize>0) {
070:        if (open (INPUT,"<",$_)) {
071:            ...
... and that works. what think about it?
 
> --------------
> 
> The 3-argument form of open() is definitely preferred.

yes. i always use this form. when i post, i think about about chars 
problems...



>   -Ken
thanks 


-- 
klp

Reply via email to