Steve Grazzini <[EMAIL PROTECTED]> writes: > Ah, okay. But you'll need to make that into a real loop. > > use File::Spec::Functions; > ... > > foreach (readdir(DIR)) { > my $target = catfile($mnsd, $_); > if (-l $target) { > unlink $target or warn "unlink: $target: $!"; > } > } > > The "uninitialized value" was $_.
Tim Johnson <[EMAIL PROTECTED]> writes: > It doesn't look like you are setting the $_ variable anywhere. Maybe if you > put this line in after the opendir and before the first bracket: > > foreach(readdir(DIR)) > > and closed the bracket Always a good sign to get two answers the same... Just one further point here. I see my formulation doesn't set $_ but not really sure why. Comparing mine to the example from perldoc: Mine: opendir(DIR, $mnsd) or die "can’t opendir DIR: $!"; { my $target = $mnsd . "/" . $_; unlink $target if (-l $target)} readdir(DIR); perldoc -f readdir [...] opendir(DIR, $some_dir) ││ die "can’t opendir $some_dir: $!"; @dots = grep { /^\./ && -f "$some_dir/$_" } readdir(DIR); closedir DIR; Which I was kind of trying to emulate. What makes the difference? Before seeing the helpful posts I wound up with something that works but not as well as foreach (It also has a few changes and more things thrown in): opendir(MY_DIR,"$modf") or die "Can't opendir MY_DIR: $!"; chdir $modf; @lose_em = grep { /\d+$/ && -l $_ || $_ eq "pipeout_00" } readdir(MY_DIR); if (@lose_em) { unlink @lose_em or die "Can't unlink @lose_em: $!"; } This works but is hackish and needed the boolean truth test because it gets some undefined values somehow maybe '' values in there some how. foreach is better.... thanks -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]