in reply to can a script change itself?

You could just use an ancillary file:

use strict; my $uuid_store = '/tmp/.uuid_store'; my $MY_UID=1; if (-e $uuid_store) { open INHANDLE, "<$uuid_store" || die "Can't open $uuid_store for r +ead\n"; my $var = <INHANDLE>; close INHANDLE; $MY_UID = int $var; } print "The uid you are looking for : $MY_UID\n"; open OUTHANDLE, ">$uuid_store" || die "Can't open $uuid_store for writ +e\n"; print OUTHANDLE ++$MY_UID; close OUTHANDLE;

Output:

% perl gen_uid.pl The uid you are looking for : 1 % perl gen_uid.pl The uid you are looking for : 2 % perl gen_uid.pl The uid you are looking for : 3 % perl gen_uid.pl The uid you are looking for : 4 % perl gen_uid.pl The uid you are looking for : 5 % perl gen_uid.pl The uid you are looking for : 6