> This is contained on one field returned by DBI. What I'd like to do is
> take a hacket to it and just be left with:
>
> "GONZALO" and "Welcome to the customer service area of our web site."
# your $data
my($bUid,$fAct) = $data =~ m|.*S{(.+?)}bUid .* S{(.+?)}fAct |;
print "buid: $bUid\nfact: $fAct";
> I have written code that will do that (included below) but it is not
> very portable and it's kinda lengthy for being perl..
I thought my code was lengthy...
> What would be a heaven sent is if I could use variables in a regular
> expression, something like $szVal =~ /$szPattern1(.*)$szPattern2/ but
> I don't see anywhere I can do that.. I have read the O'Reilly
> Mastering Regexes book cover to cover, no hints..
Its possible. What you have should work. When in doubt try:
$szPattern1 = qr|foo|; # quote regexp
> Does anyone know a better way to extract what I need?
>
> Here is the code that I have... It's working... but I'm only looking
> for the specified values, if I have to look for something else within
> the string, this will not cut it...
This a quick hack that lets you extract certain fields by name from the
string. Passed the data string, and the fields 'bUid' and 'bUsr' it
returns this data structure:
$VAR1 = {
'bUid' => 'GONZALO',
'bUsr' => 'WCS-STD'
};
I suppose you could make it faster by not iterating through the string
per each item you want to find.
use strict;
use Data::Dumper;
my $data = 'O{bTyp | S{WCS-STD}bUsr | S{GONZALO}bUid | S{REP.352637}sId
| A{}sNme | S{}sUrl | S{}sLbl | S{}sCok | S{}mMsg | S{Welcome to the
customer service area of our web site.}fAct |S{}fTyp | S{}fKey | S{}fVal
| S{}}';
my $hash_ref = extract($data,qw|bUsr bUid|);
print Dumper $hash_ref;
#============
sub extract {
#============
my $data = shift;
my %hash;
foreach my $item ( @_ ) {
if ( $data =~ m#.*(?:S|A){(.+?)}$item # ) {
$hash{$item} = $1
}
}
return \%hash;
} # end sub
_______________________________________________
Perl-Win32-Web mailing list
[EMAIL PROTECTED]
http://listserv.ActiveState.com/mailman/listinfo/perl-win32-web