I am using the following subroutine with strict in order to read a supplied file and return it's contents in an array. I am getting errors saying I cannot use the words passed to the function as Barewords, when I quote them, the program returns nothing, even though the file exists. Subroutine:
sub ReadFile { #Declare Variables # my ($game, $file) = @_; my $dir = "$ENV{HOME}/settings/$game/$file"; #End if dir not exist # return unless -d $dir; #Read the file and create the array # open(FILE, $dir)||die("Cannot open file : $!"); my @contents = <FILE>; close(FILE); #Cut trailing \n # chomp (@contents); #Return the array # return @contents; }
Program that calls on the sub
#!/usr/bin/perl5 use strict; use warnings; use HLDS; my @games = HLDS::ReadFile(HL1, HL1.txt); foreach my $game (@games) { print "$game\n"; }
Here are the Errors when I don't quote the strings...
Bareword "HL1" not allowed while "strict subs" in use at ./games.pl li +ne 8. Bareword "HL1" not allowed while "strict subs" in use at ./games.pl li +ne 8. Bareword "txt" not allowed while "strict subs" in use at ./games.pl li +ne 8. Execution of ./games.pl aborted due to compilation errors (#1) Uncaught exception from user code: Bareword "HL1" not allowed while "strict subs" in use at ./gam +es.pl line 8. Bareword "HL1" not allowed while "strict subs" in use at ./games.pl li +ne 8. Bareword "txt" not allowed while "strict subs" in use at ./games.pl li +ne 8. Execution of ./games.pl aborted due to compilation errors.
Any thoughts...

In reply to sub strict refs errors. by davidov0009

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.