When you loop through an array for(@array){ ... }
should not each array element be aliased into $_: if you change $_, you also change the element? This is what I remembered. However, a problem I just encountered shook this recollection. I think I read somewhere that you should NOT delete array elements from within a loop. However, the following works very well. The problem is that the current directory (/tmp) can contain multiple mosfet*.tar.gz archives and multiple mosfet* directories. The following code attempts to leave only alphabetized directories in @dir. --------------------FIRST TRY------------------------------ @dir = `ls mosfet* | grep ^mosfet`; $x=0; for (@dir){ # Remove each array element that is NOT a directory name # OR remove ":\s+" from the end of dir name. if ( s/^(.*):\s+$/$1/ ){ $dir[$x] = $_; # substitution changes $_ but not @dir } else { # shouldn't the substitution change both? splice @dir, $x, 1; $_ = $dir[$x]; # splice changes @dir but not $_ redo; } $x++; } --------------------SECOND TRY----------------------------- START: @dir = `ls mosfet* | grep ^mosfet`; $x=0; for (@dir){ # substitution now changes @dir but NOT $_ unless( $dir[$x] =~ s/^(.*):\s+$/$1/ ){ splice @dir, $x, 1; $_ = $dir[$x]; redo; } $x++; } -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]