#! /usr/bin/perl use warnings; use strict; my $String_to_test = $ARGV[0]; if ( !defined($String_to_test) || $String_to_test eq "") { die "please supply a string to test qr code agaist as first arguement\n"; } my $qrtest = eval ( $ARGV[1] ); if ( $@ ) { die "invalid qr supplied at arg2. caused the following error\n$@\n"; } print "qr=$qrtest\n"; print "string=$String_to_test\n"; if ( $String_to_test =~ $qrtest ) { print "$qrtest present\n"; print "1=$1\n" if defined($1); print "2=$2\n" if defined($2); print "3=$3\n" if defined($3); print "4=$4\n" if defined($4); print "5=$5\n" if defined($5); print "6=$6\n" if defined($6); print "7=$7\n" if defined($7); print "8=$8\n" if defined($8); } else { print "$qrtest NOT present\n"; } #### ./qr_test.pl atuvz 'qr/ ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) ) ( z ) /x' qr=(?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) ) ( z ) ) string=atuvz (?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) ) ( z ) ) present 1=a 2=t 3=v 4=z #### ./qr_test.pl atuvwz 'qr/ ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) ) ( z ) /x' qr=(?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) ) ( z ) ) string=atuvwz (?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) ) ( z ) ) present 1=a 2=t 3=v 4=z #### ./qr_test.pl atuvwxz 'qr/ ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) (x) ) ( z ) /x' qr=(?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) (x) ) ( z ) ) string=atuvwxz (?x-ism: ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) (x) ) ( z ) ) present 1=a 2=t ./qr_test.sh: line 11: 40158 Segmentation fault #### ./qr_test.pl 'atuvwxz' 'qr/ ( a ) (?| x ( y ) z | (p (q) r) | (t) u (v) (w) (x) ) ( z ) /x' + ./qr_test.pl atuvwxz 'qr/ ( a ) (?| x ( y ) z () () ()| (p (q) r) | (t) u (v) (w) (x) ) ( z ) /x' qr=(?x-ism: ( a ) (?| x ( y ) z () () ()| (p (q) r) | (t) u (v) (w) (x) ) ( z ) ) string=atuvwxz (?x-ism: ( a ) (?| x ( y ) z () () ()| (p (q) r) | (t) u (v) (w) (x) ) ( z ) ) present 1=a 2=t 3=v 4=w 5=x 6=z