#use strict; use Tkx; use Digest::CRC;; my $mw = Tkx::widget->new('.'); my $asciicrc,$hexcrc; $mw->g_wm_minsize( 100, 200 ); # Command Buttons my $asciiconversion = $mw->new_ttk__button( -text => "ASCII Conversion", -width => 20, -command => sub { ascii(); } ); Tkx::grid( $asciiconversion, -row => 1, -columnspan => 1, -padx => 5, -pady => 5 ); my $hexconversion = $mw->new_ttk__button( -text => "HEX Conversion", -width => 20, -command => sub { hexa(); } ); Tkx::grid( $hexconversion, -row => 2, -columnspan => 2, -padx => 0, -pady => 0 ); # Text Boxes my $input = $mw->new_tk__text( -width => 40, -height => 5, -state => "normal", -wrap => "none" ); my $output = $mw->new_tk__text( -width => 40, -height => 5, -state => "disabled", -wrap => "none" ); Tkx::grid( $input, -row => 3, -columnspan => 1, -padx => 10, -pady => 10 ); Tkx::grid( $output, -row => 4, -columnspan => 2, -padx => 10, -pady => 10 ); Tkx::MainLoop(); sub ascii { $asciicrc = Digest::CRC->new( type => "crc32" ) ; $asciicrc->add($input); print $input; my $asciiout=$asciicrc->hexdigest(); print "The checksum of $input is $asciiout \n"; } sub hexa { $hexcrc = Digest::CRC->new(type=>"crc32");; my $hexout= $hexcrc->add( pack 'H*', $input)->hexdigest;; print "The checksum of $input is $hexout \n"; }