sub file { my $self = shift; my $file = shift; our $object; $object = $self; if ( not -f $file ){ carp 'Invalid filename provided' }; my @grammer = ; my $grammer = join ' ', @grammer; my $parser = Parse::RecDescent->new( $grammer ); open my $file_h, '<', $file or croak q{Couldn't open file}; while ( my $line = <$file_h> ){ chomp $line; $self = $parser->startrule($line); } close $file_h; undef $object; return $file; }