Provided by: libcatmandu-perl_1.2020-1_all
NAME
Catmandu::Fix::perlcode - execute Perl code as fix function
DESCRIPTION
Use this fix in the Catmandu fix language to make use of a Perl script: perlcode(myscript.pl) The script (here "myscript.pl") must return a code reference: sub { my $data = shift; $data->{testing} = 1 ; # modify the item return $data; # and return the data } When not using the fix language this my $fixer = Catmandu::Fix->new( fixes => [ do 'myscript.pl' ] ); $fixer->fix( $item ); is roughly equivalent to: my $code = do 'myscript.pl'; $item = $code->( $item ) All scripts are cached based on their filename, so using this fix multiple times will only load each given script once. The code reference gets passed a second value to reject selected items such as possible with see Catmandu::Fix::reject: sub { my ($data, $reject) = @_; if ($data->{my_field} eq 'OK') { return $data; # return the data and continue processing } else { return $reject; # return the reject flag to ignore this record } }
SEE ALSO
Catmandu::Fix::code, Catmandu::Fix::cmd