foreach $i (@dir) {
  my @title = split /\./, $dir[$i];

$i is your file name so split that not the @dir entry. You're sort of trying 
the same thing twice. foreach gets each array element, one at a time - you're 
split usage implies you're expecting the array's index (also the var. name $i so
foreach $filename (@dir) {

is better and really
foreach my $filename ( @dir ) {

to be strict safe. You can also split right to a list of vars
my ($name, $ext) = split /\./, $filename;

Note I'm assuming the file have only one period. You may want to look at the 
file name  modules
File::Basename
File::Spec

and maybe the non-core (needs to be added via cpan or ppm)
Path::Class

See "Learning Perl" page 194-196

 a

Andy Bach
(608) 658-1890
Not at my desk

On Jun 11, 2012, at 8:50 PM, Zheng Du <dea...@gmail.com> wrote:

> 
> foreach $i (@dir) {
> *#$i here refers to each content of your array @dir, which are file names*
> my @title = split /\./, $dir[$i];


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to