The following snippet does not replicate the behavior you're describing:
use strict; use warnings; use CGI; my $INPUT = CGI->new(); my $stock_symbol = $INPUT->param('stock_symbol'); if ($stock_symbol =~ /^([-\@\w.]+)$/ && length($stock_symbol) < 11 + && $stock_symbol ne "") { $stock_symbol = $1; print $1, "\n"; } else { print "Invalid Symbol!\n"; exit;}
I tested it from the command line like this:
perl mytest.pl "stock_symbol=AIDO.OB"
It's nice that CGI.pm allows you to test from the command line like that; it helps in tracking down bugs.
Anyway, it appears that the source of your trouble is not contained within the snippet you showed us. Back to the drawing board. Try lacing your script with logging notices so that you can see where it's hanging up.
Dave
In reply to Re: Correct Regex for reading stock symbol?
by davido
in thread Correct Regex for reading stock symbol?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |