http://www.perlmonks.org?node_id=680511


in reply to Re^2: storing pre-compiled binary regexes
in thread storing pre-compiled binary regexes

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!