#!/usr/bin/perl $COLLROOT='abc'; $SARRAY{"-c"} = "$COLLROOT/coll_us"; print "\n"; print " Input SBY Output NPO Output\n"; print "================================================================= =============== ==========\n"; if ( $ARGV[0] eq "" ) { output_a_line("123456","123456"); print "\n"; } else { # output_a_line($ARGV[0], "who knows?"); output_a_line("@ARGV", "who knows?"); } print "\n"; exit; sub output_a_line { local($test_value)=@_[0]; local($correct_answer)=@_[1]; $SBY_answer=SBY_filter_UP($test_value); $NPO_answer=filter_UP($test_value); $SBY_answer_length=length($SBY_answer); $NPO_answer_length=length($NPO_answer); unless ($SBY_answer eq $correct_answer) { $SBY_answer="\033[7m$SBY_answer\033[0m";} unless ($NPO_answer eq $correct_answer) { $NPO_answer="\033[7m$NPO_answer\033[0m";} $right_pad1=" " x (16-$SBY_answer_length); $right_pad2=" " x (58-$NPO_answer_length); printf "%-66s %s%s %s%s\n", $test_value, $SBY_answer, $right_pad1, $NPO_answer, $right_pad2; return; } # (EVS) Normalized patentnumbers, numbers only # Name: UP # Input: Lots of different formats, could be divide by comma or space # Output: normalized UP-number separated by comma sub SBY_filter_UP { my($in_var) = @_; # If there's any kind of "funny" character in this search string, don't modify it at all. return $in_var if ($in_var !~ /^[a-zA-Z\d\/_\?\*,\ ]*$/); my $return_var = ""; my @pns = split(/[\ |,]/, $in_var); foreach my $pns (@pns) { print "I'm working on pns->$pns<\n"; if ($pns ne "") { my $tpn = $pns; if ($pns =~ /\*/) { } elsif ($pns =~ /([A-Z]{0,2})([0-9\?]{4})([\/])([\d\?]{1,11})([A-Z_\?]*[0-9]*)/ix) { print "I'm working on pns->$pns< which is a case #1.\n"; print "Part 1 =>$1< Part 2 =>$2< Part 3 =>$3< Part 4 =>$4< Part 5 =>$5<\n"; $tpn = $2 . "0" x (7 - length($4)) . $4; } elsif ($pns =~ /([A-Z\?]{0,2})([A-Z\?]{0,2})0*([\d\?]{1,11})([A-Z_\?]*[0-9]*)/ix) { print "I'm working on pns->$pns< which is a case #2.\n"; print "Part 1 =>$1< Part 2 =>$2< Part 3 =>$3< Part 4 =>$4<\n"; $tpn = $3; if (($2 eq ""?$1:$2) =~ /(RE|PP|D)/ix) { $tpn = uc $1 . "0" x (8 - length($1) - length($tpn)) . $tpn; } } else { print "I'm working on pns->$pns< which is not a case #1 or a case #2\n"; } print "tpn=>$tpn< and return_var=>$return_var<\n"; $return_var .= ($return_var ne "" ? "," : "").$tpn; } } return $return_var; } # Leading zeros with patentnumber # Name: UP # Input: Less than 8 digits and no wildcard # Output: fill up with leading zeros till 8 with UP sub filter_UP { local($in_var) = @_; if ($in_var =~ /\*/) { return $in_var; } else { $aantalNullen = 8 - length($in_var); $prefix = "0" x $aantalNullen; return $prefix . $in_var; } }