Curtis,
thanks for your email. My $args is just a string. Would that make any
difference?
-r

Curtis Poe wrote:
> 
> --- Rasoul Hajikhani <[EMAIL PROTECTED]> wrote:
> > Hi there,
> > I am trying to match an expression that would perform different tasks
> > depending on the returned value:
> >
> >       #if (arguments begin with "<A HREF=")
> >       if ($args =~ /^\<A HREF=.*/i)
> >       {
> >               # do this
> >       }
> >       else
> >       {
> >               # do this
> >       }
> >
> > but it always fails to return any thing. Can some one tell me what am I
> > doing wrong? Appreciate all the help...
> > -r
> 
> Parding HTML with a regular expression is difficult and error-prone.  I would 
>strongly recommend
> against.  The following snippet only works for a very small test case:
> 
>     foreach my $args ( <DATA> ) {
>         if ($args =~ /^<\s*a\s*href\s*=/i) {
>             print "HREF: $args";
>         } else  {
>             print "Not and HREF: $args";
>         }
>     }
>     __DATA__
>     <a href="test.cgi">
>     <a hREf = "something_else.htm">
>     <a name="bob">
>     <a    href   =   '#bob'>
> 
> Knowing how your data gets into the system is at least as important as how your data 
>leaves the
> system.  Knowing your data source allows you to craft a better solution to the 
>problem.  For
> example, consider your regex:
> 
>     /^\<A HREF=.*/i
> 
> What is the source of the data?  Is it generated by another process or could humans 
>affect it?
> There are several places where you can insert whitespace into that anchor tag, have 
>valid HTML,
> and cause your regex to fail.  Here's an example which will break code *and* mine:
> 
>     <a
>      href=
>      "somefile.html"
>     >
> 
> That's annoying, but some of the documents I get have HTML formatted like that.  
>Also, you don't
> need the dot star at the end.  You don't use that information and forcing the regex 
>engine to
> match it is wasteful.
> 
> I would recommend learning to use HTML::TokeParser or a similar module to parse 
>HTML.  If you are
> only extracting links, try HTML::LinkExtor.
> 
> Cheers,
> Curtis "Ovid" Poe
> 
> =====
> Senior Programmer
> Onsite! Technology (http://www.onsitetech.com/)
> "Ovid" on http://www.perlmonks.org/
> 
> __________________________________________________
> Terrorist Attacks on U.S. - How can you help?
> Donate cash, emergency relief information
> http://dailynews.yahoo.com/fc/US/Emergency_Information/

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to