In addition to your changes and/or as an replacement of your changes ...
do this:
sub proc_test
delete all instances of $isbn
for (1 .. 50) {
$form{'TITLE'} = 'Test Item';
$form{'ISBN'} = '0123456789';
$form{'DESC'} = 'Test Description';
$form{'TITLE'} .= " $_";
$form{'DESC'} .= " $_";
$close_time = (time + 120 + ($_ * 60));
#$close_time = (time + (86400 * 60) + ($_ * 60)); # Author's line
$item_number = write_item_file(1,
$form{'CATEGORY'},
$form{'TITLE'},
$form{'ISBN'},
$form{'RESERVE'},
$form{'INC'},
$form{'DESC'},
$form{'IMAGE0'},
$start_time,
$close_time,
$clicks,
$seller_data
);
################################
sub disp_list
'isbn' => q|$isbn eq $form{'searchstring'}|,
################################
sub disp_user_auction
my (
$query, $sub, $href, $alias, $password, $item, $cat, $title, $reserve, $image,
$close_time, $high_bid, $bidder, $action, $img_info, $row, $rowcolor, $tbl_val,
$record, $seller, $alias_to_rate, $isbn,
@firstbid, @lastbid, @closetime, @bids, @ratings, @record
);
(
$title,
$isbn,
$reserve,
undef,
undef,
$image,
undef,
$close_time,
undef,
@bids
) = @{$sub->($cat, $item)};
################################
sub get_random_data
my (
$item, $title, $image, $start_time,
$close_time, $the_bid, @bids
);
(
$title,
undef,
undef,
undef,
undef,
$image,
$start_time,
$close_time,
undef,
@bids
) = @{read_item_file($cat, $item)};
################################
sub get_table_val
my (
$close_time, $image, $img_info, $title, $bids, $bid, $cat,
$item, $row, $rowcolor, $tbl_val, $the_bid, $date, $time
);
(
$close_time,
$image,
$title,
$bids,
$bid,
$cat,
$item
) = split /\[\]/, $_;
################################
Btw:
it's a pain to search a script for code-mistakes done by others. :'(
Keep in mind ...
you are using this script free of any charge!
So it would be nice if you could ask your questions in a more polite way.

No hard feelings - Just my very private opinion ...