Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
PerlMonks  

Re: simple search problem (but not for me!!)

by PrakashK (Pilgrim)
on Oct 11, 2002 at 17:22 UTC ( #204591=note: print w/ replies, xml ) Need Help??


in reply to simple search problem (but not for me!!)

You are reading the file into @prep, but are not really searching @prep for the pattern.

$tag =~ m/<!--..? -->/;
This line searches for the pattern in the variable $tag, which may or may not have been defined (considering it is a global, not a lexically scoped, variable). Consider the following instead:
$page = join "", @prep; # since the lines are in an array if (my ($tag) = $page =~ m/<!--(.+) -->/) { # call the appropriate sub based on the tag if ($tag eq 'a') { suba; exit; } elsif ($tag eq 'b') { subb; exit; } # ...etc... }
I have not attempted above to change your algorithm or data structure, although I would use a hash containing references to the subroutines, like:
my $subs = { a => \&suba, b => \&subb, # etc. } if ($subs->{$tag}) { $subs->{$tag}->(); } else { warn "Unknown tag <$tag> in file <$prepage>\n"; }

Also, I would not read the whole file at once, but instead:

my $tag; while (<PAGE>) { if (m/<!--(.+) -->/) { $tag = $1; last; # assuming there is only one tag in each file } } close <PAGE>; # proceed to call the tag handler
HTH,
/prakash


Comment on Re: simple search problem (but not for me!!)
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://204591]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (15)
As of 2015-07-31 17:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (279 votes), past polls