OK, not sure if I am doing something wrong but from my testing Perl 5.10 can not do this either
This is perl, v5.10.0 built for MSWin32-x86-multi-thread
(with 3 registered patches, see perl -V for more detail)
Here is an attempt to store some compiled regex
#!/usr/bin/perl
#create the Storable file
use warnings;
use Storable;
use Data::Dumper;
my %sigs;
while (<DATA>){
chomp;
($name,$value) = split(/\s+=\s+/,$_);
next unless $value;
$sigs{$name}= qr/$value/;
}
store(\%sigs, 'z1.bin') or die "Can't store %a in z1.bin !\n";
print Dumper \%sigs;
exit;
And here I try to read it back again
#!/usr/bin/perl
#read the Storable file
#use strict;
use warnings;
use Storable;
use Data::Dumper;
my %sigs = %{retrieve('z1.bin')} or die "Unable to retrieve from z1.bi
+n:$!\n" ;
print Dumper \%sigs;
exit;
__DATA__
1_Friday = Friday
2_random = [Rr]andom
3_catch any = .*
These are the results of the two dumps:
C:\Perl_5_10\play>..\bin\perl store.pl
$VAR1 = {
'3_catch any' => qr/(?-xism:.*)/,
'2_random' => qr/(?-xism:[Rr]andom)/,
'1_Friday' => qr/(?-xism:Friday)/
};
C:\Perl_5_10\play>..\bin\perl read.pl
$VAR1 = {
'3_catch any' => qr/Regexp=SCALAR(0x1a6bca4)/,
'2_random' => qr/Regexp=SCALAR(0x1a7c90c)/,
'1_Friday' => qr/Regexp=SCALAR(0x1c47c7c)/
};
if I try to use the read back regex they fail to match
Cheers, R.
Pereant, qui ante nos nostra dixerunt!
|