Good catch on the quotes around the filename. I intentionally left it all uncommented. But lets have some more fun with it:
#!/usr/bin/perl -w
use strict;
use IO::File;
use constant FILENAME => 'filename';
{
package cntr;
sub TIESCALAR{bless[pop],__PACKAGE__}
sub FETCH{ $_[0][0]++ }
}
my $file = IO::File->new( "< ". FILENAME )
or die "Failed to open '@{[FILENAME]}', $!";
my @elements;
{
local ( $a, $/ ) = $/.$/;
@elements = split $a => <$file>;
}
$file->close();
print "Here are the elements of the array:\n";
tie my $i, 'cntr', 1;
print map {$i.': {'."$_}$/"} @elements;
Yeah, that would go over well with a teacher or professor.
Update: So I changed the code a little from the original post. I actually tested it, and didn't like the way the newlines hung around. This fixes that. View source for the old code.