in reply to Re: data leak using package
in thread data leak using package

Thanks for the general tips, I apologise for the delay in replying - I have been trying to synthesise the salient parts or the script

In fact I have isolated what is causing the problem, but I'm not sure why or how I should change things to do what I want.
The background is that several scripts are accessed by a single user by way of a 'work page', containing buttons for those scripts.
When a script is finished with it uses wslib ( soon to be WSLib(!! :) ) to create a new work page, using html::template (not shown to keep the example simple.
In this particular instance the script edits the text file $data_reg called up in sub workspace, and renames it. If I comment out the rename line, sub workspace prints out the whole file, if I leave it in it only prints three quarters of it!! How should I deal with this?

sub edit { my $newline = join "\t", ($count_in,$current_time_in,$user_in,$passwo +rd_in,$email_in,$web_in,$agencyname_in,$business_in,$country_code_in, +$mobile_no_in,$sec_email_in,$skip); open FH, "$data_reg" or die "Can't open data_reg file for reading: $! +"; flock (FH, 1) or die "Can't lock data_reg file for reading"; my @alldata = <FH>; close FH; open FILE, '>', "$data_reg.tmp" or die "Can't open data_reg file for +reading: $!"; flock (FILE, 2) or die "Can't lock data_reg.tmp file for writing"; foreach (@alldata) { chomp; ($count,$current_time,$username,$password,$email,$web,$agencyname, +$business,$country_code,$mobile_no,$sec_email,$skip) = split /\t/; if ($user_in eq $username) { print FILE "$newline\n"; } else { print FILE "$_\n"; } } # rename ("$data_reg.tmp", "$data_reg") or die "Can't rename file: $! +"; ##only prints properly if commented out! &workspace(@exp); }

Replies are listed 'Best First'.
Re^3: data leak using package
by davorg (Chancellor) on Feb 07, 2007 at 11:06 UTC
Re^3: data leak using package
by polettix (Vicar) on Feb 07, 2007 at 11:25 UTC
    It seems to be Dominus day today... even if it's Tuesday! Regarding this fragment:
    open FILE, '>', "$data_reg.tmp" or die "Can't open data_reg file for +reading: $ +!"; flock (FILE, 2) or die "Can't lock data_reg.tmp file for writing";
    you might benefit from these slides.

    Flavio
    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Don't fool yourself.