#!/usr/bin/perl -w -I/opt/eprints3/perl_lib # Search for eprints by title and modify each result use EPrints; use strict; # Start session my $session = new EPrints::Session( 1, "REPOSITORYID" ); exit( 0 ) unless( defined $session ); # Get archive dataset my $ds = $session->get_repository->get_dataset( "archive" ); # Create search expression my $search = new EPrints::Search( session=>$session, dataset=>$ds ); # Add filter $search->add_field( $ds->get_field( "date" ), "-1999" ); my $list = $search->perform_search; # Map function to each result $list->map( sub { my( $session, $dataset, $eprint ) = @_; print "Updating eprint " . $eprint->get_id . "\n"; $eprint->set_value( "note", "This note was added by the search_and_modify.pl script." ); $eprint->commit; $eprint->generate_static; } ); # Tidy up $list->dispose(); # End session $session->terminate();