in reply to Re^2: troubleshooting filehandle
in thread troubleshooting filehandle

And are you sure the very first line in DATA matches one of the condition? 'Cause if it doesn't Perl tries the first one, fails, tries the second one, fails, prints 'nope' and the content of the line and EXITS THE LOOP.

Replies are listed 'Best First'.
Re^4: troubleshooting filehandle
by kwn (Novice) on Oct 18, 2008 at 02:07 UTC
    Oh I see what you mean now Jenda. So then what I think I need to do is make the if condition iterate over every line of the text file until it finds the matching syntax, yes? The first line in DATA:
    #bg at,super
    does not match any conditions:
    if ((/#bg\s$input/ .. /#be\s$input/) =~ /^\d+(?<!^1)$/)
    or
     elsif (/bb\s$input/)
    and I dont want it to either.
    my conditions:

    if ((/#bg\s$input/ .. /#be\s$input/) =~ /^\d+(?<!^1)$/) { print $_; }


    elsif (/bb\s$input/) { print $_; last; }


    else { print "nope".$_; last; }


    So the first if condition should print everything between
    /#bg\s$input/
    and
    /#be\s$input/
    and this part:
    /^\d+(?<!^1)$/
    will get rid of the starting and ending points: "/#bg\s$input/ and /#be\s$input/",
    leaving everything else in between. Am I way off track here?