SPUG: Problem deleting files

Matt Tucker tuck at whistlingfish.net
Fri Dec 1 12:14:44 CST 2000


Have we beat this one enough?  ;-)


-- "Tim Maher/CONSULTIX" <tim at consultix-inc.com> spake thusly:

> Like the shells, Perl *will* do variable expansion within the
> "globbing brackets", but any wildcards have to be visible when the
> innards of those brackets are first scanned (as opposed to arising
> out of variable interpolation).  Because an eval allows the
> interpolation to occur before the globbing operation is attempted, it
> allows the wildcard characters to be presented via variables.

Actually, this isn't true:

#!/usr/bin/perl -w

use strict;

system qw(touch foo.bar foo.baz foo.bang);
system 'ls';
my $oldfiles = 'foo.*';
my @oldfiles = < $oldfiles >;
print "Oldfiles: ", join(' ', @oldfiles), "\n";
unlink @oldfiles;
system 'ls';

>>>foo.bang  foo.bar  foo.baz  http_test  try  try.c  try.pl
>>>Use of uninitialized value in subroutine entry at >>>/usr/lib/perl5/5.6.0/i386-linux/File/Glob.pm line 145.
>>>Oldfiles:  foo.bang foo.bar foo.baz
>>>http_test  try	try.c  try.pl

So Perl apparently does do variable expansion before globbing. The important thing is still that the spaces are required. (And I wonder if 
perhaps the Perl version is a factor; I'm running 5.6.0.) Although perhaps the eval trick is safer, as long as you're guaranteed to have metacharacters.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
Url : http://mail.pm.org/archives/spug-list/attachments/20001201/fd381b4d/attachment.bin


More information about the spug-list mailing list