diff options
author | stderr64 <stderr64@null.net> | 2024-10-24 23:04:43 +0300 |
---|---|---|
committer | stderr64 <stderr64@null.net> | 2024-10-24 23:04:43 +0300 |
commit | ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9 (patch) | |
tree | 56317bc3756fa1439f748fda422996c526a76b14 /perl_number_sort | |
download | experiments-ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9.tar.gz experiments-ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9.tar.zst |
Recreated repository
Diffstat (limited to 'perl_number_sort')
-rwxr-xr-x | perl_number_sort/number_sort.pl | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/perl_number_sort/number_sort.pl b/perl_number_sort/number_sort.pl new file mode 100755 index 0000000..1190f4f --- /dev/null +++ b/perl_number_sort/number_sort.pl @@ -0,0 +1,49 @@ +#!/usr/bin/perl +use POSIX; + +if ( scalar(@ARGV) < 1 ){ + print( "Usage: ".__FILE__." [amount of numbers]\n" ); + exit( 0 ); +} + +if ( int($ARGV[0]) > 999 ){ + print( "Only maximum of 999 numbers can be generated\n" ); + exit( 0 ); +} + +srand(); + +my @numbers = (); +my @numbers_sorted = (); + +sub sort_fn{ + if ( $a < $b ){ + return -1; + } + elsif ( $a > $b ){ + return 1; + } + else + { + return 0; + } +} + +print( "Generating numbers\n" ); +for ( my $ncount = 0; $ncount < int($ARGV[0]); $ncount++ ){ + push( @numbers, int(rand(999)) ); +} +print( "Numbers generated\n" ); + +if ( defined($ncount) ){ + undef $ncount; +} + +@numbers_sorted = sort( sort_fn @numbers ); + +print( "Unsorted:\n".join(", ", @numbers)."\n\n" ); +print( "Sorted:\n".join(", ", @numbers_sorted)."\n" ); + +undef @numbers_sorted; +undef @numbers; +exit( 0 ); |