#!usr/bin/perl -w
use strict;
# Filename 'Linehist.pm' same as package name, Module in same directory as the code you wish to call it from
use Tk;
package Linehist; # Package name (might go before the use Tk I'm never sure )
sub history {
my $entry = shift;
my $cmand = shift; my $hist;
if ($cmand eq "new") {
my %hash;
my @list;
$hash{hlist} = \@list;
$hash{place} = 0;
my $ref = \%hash;
return $ref;
} else {$hist = shift;}
if ($cmand eq "add") {
my $string = $$entry->get;
$$entry->delete('0','end');
push(@{$hist->{hlist}},$string);
$hist->{place}++;
} elsif ($cmand eq "up") {
if ($hist->{place} <= 0) {$hist->{place} = $#{$hist->{hlist}}}
else {$hist->{place}--};
$$entry->delete('0','end');
$$entry->insert('1',$hist->{hlist}[$hist->{place}]);
} elsif ($cmand eq "down") {
$$entry->delete('0','end');
if ($hist->{place} == $#{$hist->{hlist}}) {
$hist->{place} = -1;
return}
$hist->{place}++;
$$entry->insert('1',$hist->{hlist}[$hist->{place}]);
}
}
1; # Module is loaded by use or require
####
#!usr/bin/perl -w
use stirct;
use Linehist;
my $entry = 'What ever you had';
Linehist->history(\$entry, 'new');
####
history(\$entry, 'one');
####
use Linehist qw(history);