CONTENT
  • CHANGES
Szukaj
counter

#top Array


W języku perl należy rozróżnić dwa typy tablic: LIST, HASH. LIST jest tablicą indeksowaną numerycznie od 0 do n-1 elementów, natomiast HASH jest tablicą indeksowaną ciągami znaków. W przypadku używania różnego typu tablic w języku perl należy zwrócić uwagę na różnicę w sposobie definicji oraz sposobie odwoływania się do elementów:
- zmienna tablicowa typu LIST definiowana jest w następujący sposób my @LIST;
- zmienna tablicowa typu HASH definiowana jest w następujący sposób my %HASH;
Indeksowanie elementów tablicy również jest zależne od typu tablicy:
- w przypadku tablicy typu LIST elementy indeksowane są następująco (odczyt/modyfikacja): $LIST[$index]
- w przypadku tablicy typu HASH elementy indeksowaną są następująco (odczyt/modyfikacja): $LIST{$key}

Następujące definicje tablicy LIST są równoważne (w następującym rozumieniu: utworzona lista będzie posiadała identyczną strukturę wraz z zawartością):
- definicja listy wraz z inicjalizacją (przypisaniem wartości):
my @LIST=(1,2,3);
- definicja listy, a następnie inicjalizacja każdego określonego numeru indeksu osobno (przypisanie wartości każdemu indeksowi osobno):
my @LIST; $LIST[0]=1; $LIST[1]=2; $LIST[2]=3;
- definicja listy, a następnie inicjalizacja ostatniego elementu indeksu osobno (przypisanie wartości każdemu indeksowi osobno):
my @LIST; $LIST[$#LIST+1]=1; $LIST[$#LIST+1]=2; $LIST[$#LIST+1]=3;
- definicja listy, a następnie użycie funkcji operującej na liscie (dodającej elementy na końcu tablicy):
my @LIST; push(@LIST, 1); push(@LIST, 2); push(@LIST, 3);
- definicja listy wraz inicjalizacją, przypisaniem listy zwróconej przez funkcję wykonującą podział ciągu znaków:
my @LIST=split(/:/,"1:2:3");

Następujące definicje tablicy HASH są równoważne (w następującym rozumieniu: utworzona tablica HASH będzie posiadała identyczną strukturę wraz z zawartością):
- definicja tablicy HASH wraz z inicjalizacją (przypisaniem wartości do określonych kluczy):
my %HASH=("1"=>1,22=>22,"333"=>333);
- definicja tablicy HASH wraz z inicjalizacją (przypisaniem do kolejno występujących kluczy kolejno występujących wartości):
my %HASH=("1",1,22,22,"333",333);
- definicja tablicy HASH, a następnie inicjalizacja każdego klucza (key) tablicy HASH osobno (przypisanie wartości każdemu kluczowi osobno):
my %HASH; $HASH{"1"}=1; $HASH{22}=>22; $HASH{"333"}=>333;
- definicja tablicy HASH wraz z inicjalizacją wartościami z tablicy LIST:
my @LIST=("1",1,22,22,"333",333);
my %HASH=@LIST;

#top Predefined Constants


No Predefined Constants here.





#top Datatypes / MACROS


No Datatypes here.





#top Array Functions


#top delete


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji delete() jest następująca:


Powiązane:
delete(), defined(), exists(),

Opis:
description



#top exists


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji exists() jest następująca:


Powiązane:
delete(), defined(), exists(),

Opis:
description

Example:
zawartość pliku delete.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my (%HASH, @LIST, $ki, $key, $val);



if ($#ARGV+1<1) {
	print("Usage: $0 <key:val>\n");
	print("Examples:\n");
	print("       $0 key0:val0 key0 key1 key1:val1 keya:vala keya keyb keyb:valb\n");
	exit(1);
}

print""$0: foreach \$ki (0..$#ARGV):\n");
foreach $ki (0..$#ARGV) {
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]):\n");
	($key, $val)=split(/:/, $ARGV[$ki]);
	if (defined($val)) {
		printt"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): \$key=$key \$val=$val:\n");
		$HASH{$key}=$val;
		printt"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): \$key=$key \$val=$val: \$HASH{$key}=$HASH{$key}\n");
	} else {
		printt"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): else: \$key=$key:\n");
		if (exists($HASH{$key})) {
			printn"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): else: \$key=$key: if (exists(\$HASH{$key})): \$result=delete(\$HASH{$key}):\n");
			my $result=delete($HASH{$key});
			printn"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): else: \$key=$key: if (exists(\$HASH{$key})): \$result=delete(\$HASH{$key}): \$result=$result\n");
		} else {
			printn"$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): if (defined(\$val)): else: \$key=$key: if (exists(\$HASH{$key})): else: not exists\n");
		}
	}
}
print""$0:\n");

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/delete.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/delete.pl <key:val>
Examples:
       /home/local/code/perlcode/array/delete.pl key0:val0 key0 key1 key1:val1 keya:vala key2 keya keyb keyb:valb

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/delete.pl key0:val0 key0 key1 key1:val1 keya:vala keya keyb keyb:valb
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/delete.pl: foreach $ki (0..7):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0): if (defined($val)): $key=key0 $val=val0:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0): if (defined($val)): $key=key0 $val=val0: $HASH{key0}=val0
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[1]=key0):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[1]=key0): if (defined($val)): else: $key=key0:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[1]=key0): if (defined($val)): else: $key=key0: if (exists($HASH{key0})): $result=delete($HASH{key0}):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[1]=key0): if (defined($val)): else: $key=key0: if (exists($HASH{key0})): $result=delete($HASH{key0}): $result=val0
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[2]=key1):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[2]=key1): if (defined($val)): else: $key=key1:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[2]=key1): if (defined($val)): else: $key=key1: if (exists($HASH{key1})): else: not exists
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[3]=key1:val1):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[3]=key1:val1): if (defined($val)): $key=key1 $val=val1:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[3]=key1:val1): if (defined($val)): $key=key1 $val=val1: $HASH{key1}=val1
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[4]=keya:vala):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[4]=keya:vala): if (defined($val)): $key=keya $val=vala:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[4]=keya:vala): if (defined($val)): $key=keya $val=vala: $HASH{keya}=vala
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[5]=keya):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[5]=keya): if (defined($val)): else: $key=keya:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[5]=keya): if (defined($val)): else: $key=keya: if (exists($HASH{keya})): $result=delete($HASH{keya}):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[5]=keya): if (defined($val)): else: $key=keya: if (exists($HASH{keya})): $result=delete($HASH{keya}): $result=vala
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[6]=keyb):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[6]=keyb): if (defined($val)): else: $key=keyb:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[6]=keyb): if (defined($val)): else: $key=keyb: if (exists($HASH{keyb})): else: not exists
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[7]=keyb:valb):
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[7]=keyb:valb): if (defined($val)): $key=keyb $val=valb:
/home/local/code/perlcode/array/delete.pl: ($key, $val)=split(/:/, $ARGV[7]=keyb:valb): if (defined($val)): $key=keyb $val=valb: $HASH{keyb}=valb
/home/local/code/perlcode/array/delete.pl:



#top grep


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji grep() jest następująca:


Powiązane:

Opis:
description

Example:
zawartość pliku grep.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my (@LIST, $greptext, @GREPLIST);



if ($#ARGV+1<1) {
	print("Usage: $0 <greptext> <value [, value [, value, [...]]]>\n");
	print("Examples:\n");
	print("       $0 val123 val1 val12 val123 val123a val123ab\n");
	print("       $0 'val.*a\$' val1 val12 val123 val123a val123ab\n");
	print("       $0 'val[0-9]' val1 val2 val3 vala valb\n");
	exit(1);
}

print""$0: \@ARGV=@ARGV\n");
@LIST=@ARGV;
$greptext=shift(@LIST);
print""$0: \$greptext=$greptext \@LIST=@LIST\n");

print""$0: \@GREPLIST=grep(/\$greptext/, \@LIST): \$greptext=|$greptext| \@LIST=|@LIST|\n");
@GREPLIST=grep(/$greptext/, @LIST);
print""$0: \@GREPLIST=grep(/\$greptext/, \@LIST): \$greptext=|$greptext| \@LIST=|@LIST| \@GREPLIST=|@GREPLIST|\n");

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/grep.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/grep.pl <greptext> <value [, value [, value, [...]]]>
Examples:
       /home/local/code/perlcode/array/grep.pl val123 val1 val12 val123 val123a val123ab
       /home/local/code/perlcode/array/grep.pl 'val.*a$' val1 val12 val123 val123a val123ab
       /home/local/code/perlcode/array/grep.pl 'val[0-9]' val1 val2 val3 vala valb

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/grep.pl val123 val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl 'val.*a$' val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl 'val[0-9]' val1 val2 val3 vala valb
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/grep.pl: @ARGV=val123 val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl: $greptext=val123 @LIST=val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val123| @LIST=|val1 val12 val123 val123a val123ab|
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val123| @LIST=|val1 val12 val123 val123a val123ab| @GREPLIST=|val123 val123a val123ab|

/home/local/code/perlcode/array/grep.pl: @ARGV=val.*a$ val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl: $greptext=val.*a$ @LIST=val1 val12 val123 val123a val123ab
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val.*a$| @LIST=|val1 val12 val123 val123a val123ab|
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val.*a$| @LIST=|val1 val12 val123 val123a val123ab| @GREPLIST=|val123a|

/home/local/code/perlcode/array/grep.pl: @ARGV=val[0-9] val1 val2 val3 vala valb
/home/local/code/perlcode/array/grep.pl: $greptext=val[0-9] @LIST=val1 val2 val3 vala valb
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val[0-9]| @LIST=|val1 val2 val3 vala valb|
/home/local/code/perlcode/array/grep.pl: @GREPLIST=grep(/$greptext/, @LIST): $greptext=|val[0-9]| @LIST=|val1 val2 val3 vala valb| @GREPLIST=|val1 val2 val3|



#top join


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji join() jest następująca:


Powiązane:
join(), keys(), split(), values(),

Opis:
description



#top keys


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji keys() jest następująca:


Powiązane:
join(), keys(), split(), values(),

Opis:
description



#top Merge LIST


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Powiązane:

Opis:
description

Example:
zawartość pliku merge.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my ($ki, $key, $val, @LISTLIST, @LISTMERGE);



sub merge {
	# 2011/11/27: calling merge(@ARG1, @ARG2, @ARG3, ...) causes all list are merged into one list @_
	# 2011/11/27: merge(@ARG1, @ARG2, @ARG3, ...) === @ARGS=(@ARG1, @ARG2, @ARG3, ...)
	return @_;
}



if ($#ARGV+1<1) {
	print("Usage: $0 <greptext> <value [, value [, value, [...]]]>\n");
	print("Examples:\n");
	print("       $0 key0:val0 key1:val1 key2:val2 keya:vala keyb:valb\n");
	exit(1);
}

print""$0: foreach \$ki (0..$#ARGV):\n");
foreach $ki (0..$#ARGV) {
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]):\n");
	($key, $val)=split(/:/, $ARGV[$ki]);
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): \$key=$key \$val=$val\n");
	@{$LISTLIST[$#LISTLIST+1]}=($key, $val);
}
print""$0:\n");

if      ($#LISTLIST+1==3) {
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}, \@{\$LISTLIST[1]}, \@{\$LISTLIST[2]}): \@LISTLIST=|@LISTLIST|\n");
	@LISTMERGE=merge(@{$LISTLIST[0]}, @{$LISTLIST[1]}, @{$LISTLIST[2]});
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}, \@{\$LISTLIST[1]}, \@{\$LISTLIST[2]}): \@LISTLIST=|@LISTLIST| \@LISTMERGE=|@LISTMERGE|\n");
} elsif ($#LISTLIST+1==2) {
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}, \@{\$LISTLIST[1]}): \@LISTLIST=|@LISTLIST|\n");
	@LISTMERGE=merge(@{$LISTLIST[0]}, @{$LISTLIST[1]});
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}, \@{\$LISTLIST[1]}): \@LISTLIST=|@LISTLIST| \@LISTMERGE=|@LISTMERGE|\n");
} elsif ($#LISTLIST+1==1) {
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}): \@LISTLIST=|@LISTLIST|\n");
	@LISTMERGE=merge(@{$LISTLIST[0]});
	print("$0: \@LISTMERGE=merge(\@{\$LISTLIST[0]}): \@LISTLIST=|@LISTLIST| \@LISTMERGE=|@LISTMERGE|\n");
}

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/merge.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/merge.pl <greptext> <value [, value [, value, [...]]]>
Examples:
       /home/local/code/perlcode/array/merge.pl key0:val0 key1:val1 key2:val2

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/merge.pl key0:val0 key1:val1 key2:val2
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/merge.pl: foreach $ki (0..2):
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0):
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0): $key=key0 $val=val0
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[1]=key1:val1):
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[1]=key1:val1): $key=key1 $val=val1
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[2]=key2:val2):
/home/local/code/perlcode/array/merge.pl: ($key, $val)=split(/:/, $ARGV[2]=key2:val2): $key=key2 $val=val2
/home/local/code/perlcode/array/merge.pl:
/home/local/code/perlcode/array/merge.pl: @LISTMERGE=merge(@{$LISTLIST[0]}, @{$LISTLIST[1]}, @{$LISTLIST[2]}): @LISTLIST=|ARRAY(0x869b3a8) ARRAY(0x86e8ca0) ARRAY(0x86a9cf0)|
/home/local/code/perlcode/array/merge.pl: @LISTMERGE=merge(@{$LISTLIST[0]}, @{$LISTLIST[1]}, @{$LISTLIST[2]}): @LISTLIST=|ARRAY(0x869b3a8) ARRAY(0x86e8ca0) ARRAY(0x86a9cf0)| @LISTMERGE=|key0 val0 key1 val1 key2 val2|



#top pop


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji pop() jest następująca:


Powiązane:
pop(), push(), shift(), unshift(),

Opis:
description



#top push


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji push() jest następująca:


Powiązane:
pop(), push(), shift(), unshift(),

Opis:
description

Example:
zawartość pliku push.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my (@LIST, $total, $key, $val);



if ($#ARGV+1<=0) {
	print("Usage: $0\n");
	print("Examples:\n");
	print("       $0 arg1 arg2 arg3 arg4\n");
}

print""$0: for \$key (0..$#ARGV):\n");
for $key (0..$#ARGV) {
	print("$0: for \$key (0..$#ARGV): \$key=$key:\n");
	$val=$ARGV[$key];
	print("$0: for \$key (0..$#ARGV): \$key=$key: \$val=$val:\n");
	if ($key<($#ARGV+1)/2) {
		printt"$0: for \$key (0..$#ARGV): \$key=$key: \$val=$val: \@LIST=|@LIST|\n");
		$total=push(@LIST, $val);
		printt"$0: for \$key (0..$#ARGV): \$key=$key: \$val=$val: \$total=push(\@LIST, \$val): \$total=$total \@LIST=|@LIST|\n");
	} else {
		printt"$0: for \$key (0..$#ARGV): \$key=$key: \$val=$val: \@LIST=|@LIST|\n");
		$total=unshift(@LIST, $val);
		printt"$0: for \$key (0..$#ARGV): \$key=$key: \$val=$val: \$total=unshift(\@LIST, \$val): \$total=$total \@LIST=|@LIST|\n");
	}
}
print""$0:\n");

print""$0: for \$key (0..$#LIST):\n");
for $key (0..$#LIST) {
	print("$0: for \$key (0..$#LIST): \$key=$key \$val=\$LIST[$key]:\n");
	if ($key>=($#LIST+1)/2) {
		printt"$0: for \$key (0..$#LIST): \$key=$key: \$val=$val: \@LIST=|@LIST|\n");
		$val=pop(@LIST);
		printt"$0: for \$key (0..$#LIST): \$key=$key: \$val=$val: \$val=pop(\@LIST): \$val=$val \@LIST=|@LIST|\n");
	} else {
		printt"$0: for \$key (0..$#LIST): \$key=$key: \$val=$val: \@LIST=|@LIST|\n");
		$val=shift(@LIST);
		printt"$0: for \$key (0..$#LIST): \$key=$key: \$val=$val: \$val=shift(\@LIST): \$val=$val \@LIST=|@LIST|\n");
	}
}
print""$0:\n");

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/push.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/push.pl
Examples:
       /home/local/code/perlcode/array/push.pl arg1 arg2 arg3 arg4
/home/local/code/perlcode/array/push.pl: for $key (0..-1):
/home/local/code/perlcode/array/push.pl:
/home/local/code/perlcode/array/push.pl: for $key (0..-1):
/home/local/code/perlcode/array/push.pl:

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/push.pl arg1 arg2 arg3 arg4
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/push.pl: for $key (0..3):
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0: $val=arg1:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0: $val=arg1: @LIST=||
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0: $val=arg1: $total=push(@LIST, $val): $total=1 @LIST=|arg1|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=1:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=1: $val=arg2:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=1: $val=arg2: @LIST=|arg1|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=1: $val=arg2: $total=push(@LIST, $val): $total=2 @LIST=|arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=2:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=2: $val=arg3:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=2: $val=arg3: @LIST=|arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=2: $val=arg3: $total=unshift(@LIST, $val): $total=3 @LIST=|arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=3:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=3: $val=arg4:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=3: $val=arg4: @LIST=|arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=3: $val=arg4: $total=unshift(@LIST, $val): $total=4 @LIST=|arg4 arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl:
/home/local/code/perlcode/array/push.pl: for $key (0..3):
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0 $val=$LIST[0]:
/home/local/code/perlcode/array/push.pl: for $key (0..3): $key=0: $val=arg4: @LIST=|arg4 arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..2): $key=0: $val=arg4: $val=shift(@LIST): $val=arg4 @LIST=|arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..2): $key=1 $val=$LIST[1]:
/home/local/code/perlcode/array/push.pl: for $key (0..2): $key=1: $val=arg4: @LIST=|arg3 arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..1): $key=1: $val=arg3: $val=shift(@LIST): $val=arg3 @LIST=|arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..1): $key=2 $val=$LIST[2]:
/home/local/code/perlcode/array/push.pl: for $key (0..1): $key=2: $val=arg3: @LIST=|arg1 arg2|
/home/local/code/perlcode/array/push.pl: for $key (0..0): $key=2: $val=arg2: $val=pop(@LIST): $val=arg2 @LIST=|arg1|
/home/local/code/perlcode/array/push.pl: for $key (0..0): $key=3 $val=$LIST[3]:
/home/local/code/perlcode/array/push.pl: for $key (0..0): $key=3: $val=arg2: @LIST=|arg1|
/home/local/code/perlcode/array/push.pl: for $key (0..-1): $key=3: $val=arg1: $val=pop(@LIST): $val=arg1 @LIST=||
/home/local/code/perlcode/array/push.pl:



#top shift


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji shift() jest następująca:


Powiązane:
pop(), push(), shift(), unshift(),

Opis:
description



#top sort


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji sort() jest następująca:


Powiązane:

Opis:
description

Example:
zawartość pliku sort.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my (@LIST, @SORTLIST);



sub sortnat {
	my @LIST=@_;
	my $key;
	
	@LIST=@LIST[
		map { unpack('N',substr($_,-4)); }
		sort(map { $key=$LIST[$_]; $key=~s[(\d+)][pack('N',$1)]ge; $key.pack('N',$_); } 0..$#LIST)
	];
	#@LIST=reverse(@LIST);
	return @LIST;
}



if ($#ARGV+1<1) {
	print("Usage: $0 <greptext> <value [, value [, value, [...]]]>\n");
	print("Examples:\n");
	print("       $0 val123 val123a val123ab val1 val12\n");
	exit(1);
}

print""$0: \@ARGV=@ARGV\n");
@LIST=@ARGV;
print""$0: \@LIST=@LIST\n");

print""$0: \@SORTLIST=grep(\@LIST): \@LIST=|@LIST|\n");
@SORTLIST=sort(@LIST);
print""$0: \@SORTLIST=sort(\@LIST): \@LIST=|@LIST| \@SORTLIST=|@SORTLIST|\n");

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/sort.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/sort.pl <greptext> <value [, value [, value, [...]]]>
Examples:
       /home/local/code/perlcode/array/sort.pl val123 val123a val123ab val1 val12

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/sort.pl val123 val123a val123ab val1 val12
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/sort.pl: @ARGV=val123 val123a val123ab val1 val12
/home/local/code/perlcode/array/sort.pl: @LIST=val123 val123a val123ab val1 val12
/home/local/code/perlcode/array/sort.pl: @SORTLIST=grep(@LIST): @LIST=|val123 val123a val123ab val1 val12|
/home/local/code/perlcode/array/sort.pl: @SORTLIST=sort(@LIST): @LIST=|val123 val123a val123ab val1 val12| @SORTLIST=|val1 val12 val123 val123a val123ab|



#top split


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji split() jest następująca:


Powiązane:
join(), keys(), split(), values(),

Opis:
description

Example:
zawartość pliku split.pl
SELECT ALL
#!/usr/bin/perl -w

use strict;      # force definations for all vars an subroutines
use warnings;    # force check of unset variables in expressions
use diagnostics; # give var/code line number on faults



my (%HASH, @LIST, $ki, $key, $val);



if ($#ARGV+1<1) {
	print("Usage: $0 <key:val>\n");
	print("Examples:\n");
	print("       $0 key0:val0 key1:val1 key2:val2 keya:vala keyb:valb\n");
	exit(1);
}

print""$0: foreach \$ki (0..$#ARGV):\n");
foreach $ki (0..$#ARGV) {
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]):\n");
	($key, $val)=split(/:/, $ARGV[$ki]);
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): \$key=$key \$val=$val:\n");
	$HASH{$key}=$val;
	print("$0: (\$key, \$val)=split(/:/, \$ARGV[$ki]=$ARGV[$ki]): \$key=$key \$val=$val: \$HASH{$key}=$HASH{$key}\n");
}
print""$0:\n");

print""$0: \@LIST=keys(\%HASH):\n");
@LIST=keys(%HASH);
print""$0: \@LIST=keys(\%HASH): \@LIST=@LIST\n");
print""$0: \@LIST=keys(\%HASH): join('|',\@LIST)=".join('|',@LIST)."\n");
print""$0: foreach \$key (\@LIST): \@LIST=@LIST\n");
foreach $key (@LIST) {
	print("$0: foreach \$key (\@LIST): \$key=$key \$val=\$HASH{$key}:\n");
	$val=$HASH{$key};
	print("$0: foreach \$key (\@LIST): \$key=$key \$val=\$HASH{$key}: \$val=$HASH{$key}: \$val=$val\n");
}
print""$0:\n");

print""$0: foreach \$ki (0..$#LIST):\n");
foreach $ki (0..$#LIST) {
	print("$0: foreach \$ki (0..$#LIST): \$ki=$ki \$key=\$LIST[$ki]\n");
	$key=$LIST[$ki];
	print("$0: foreach \$ki (0..$#LIST): \$ki=$ki \$key=\$LIST[$ki]: \$key=$key \$HASH{$key}=$HASH{$key}\n");
}
print""$0:\n");

print""$0: \@LIST=values(\%HASH):\n");
@LIST=values(%HASH);
print""$0: \@LIST=values(\%HASH): \@LIST=@LIST\n");
print""$0: \@LIST=values(\%HASH): join('|',\@LIST)=".join('|',@LIST)."\n");
print""$0: foreach \$val (\@LIST): \@LIST=@LIST\n");
foreach $val (@LIST) {
	print("$0: foreach \$val (\@LIST): \$val=$val\n");
}
print""$0:\n");

Aby zobaczyć jak działa program należy go uruchomić bez argumentów:
/home/local/code/perlcode/array/split.pl
program wyświetli informacje o sposobie uruchamiania programu:
Usage: /home/local/code/perlcode/array/split.pl <key:val>
Examples:
       /home/local/code/perlcode/array/split.pl key0:val0 key1:val1 key2:val2 keya:vala keyb:valb

jako argument wywołania programu można podać analogiczne jak poniżej argumenty:
/home/local/code/perlcode/array/split.pl key0:val0 key1:val1 key2:val2 keya:vala keyb:valb
rezultat będzie zależny od podanego argumentu wywołania programu:
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0): $key=key0 $val=val0:
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[0]=key0:val0): $key=key0 $val=val0: $HASH{key0}=val0
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[1]=key1:val1):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[1]=key1:val1): $key=key1 $val=val1:
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[1]=key1:val1): $key=key1 $val=val1: $HASH{key1}=val1
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[2]=key2:val2):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[2]=key2:val2): $key=key2 $val=val2:
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[2]=key2:val2): $key=key2 $val=val2: $HASH{key2}=val2
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[3]=keya:vala):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[3]=keya:vala): $key=keya $val=vala:
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[3]=keya:vala): $key=keya $val=vala: $HASH{keya}=vala
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[4]=keyb:valb):
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[4]=keyb:valb): $key=keyb $val=valb:
/home/local/code/perlcode/array/split.pl: ($key, $val)=split(/:/, $ARGV[4]=keyb:valb): $key=keyb $val=valb: $HASH{keyb}=valb
/home/local/code/perlcode/array/split.pl:
/home/local/code/perlcode/array/split.pl: @LIST=keys(%HASH):
/home/local/code/perlcode/array/split.pl: @LIST=keys(%HASH): @LIST=keya key2 key1 keyb key0
/home/local/code/perlcode/array/split.pl: @LIST=keys(%HASH): join('|',@LIST)=keya|key2|key1|keyb|key0
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): @LIST=keya key2 key1 keyb key0
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=keya $val=$HASH{keya}:
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=keya $val=$HASH{keya}: $val=vala: $val=vala
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key2 $val=$HASH{key2}:
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key2 $val=$HASH{key2}: $val=val2: $val=val2
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key1 $val=$HASH{key1}:
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key1 $val=$HASH{key1}: $val=val1: $val=val1
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=keyb $val=$HASH{keyb}:
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=keyb $val=$HASH{keyb}: $val=valb: $val=valb
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key0 $val=$HASH{key0}:
/home/local/code/perlcode/array/split.pl: foreach $key (@LIST): $key=key0 $val=$HASH{key0}: $val=val0: $val=val0
/home/local/code/perlcode/array/split.pl:
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4):
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=0 $key=$LIST[0]
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=0 $key=$LIST[0]: $key=keya $HASH{keya}=vala
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=1 $key=$LIST[1]
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=1 $key=$LIST[1]: $key=key2 $HASH{key2}=val2
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=2 $key=$LIST[2]
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=2 $key=$LIST[2]: $key=key1 $HASH{key1}=val1
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=3 $key=$LIST[3]
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=3 $key=$LIST[3]: $key=keyb $HASH{keyb}=valb
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=4 $key=$LIST[4]
/home/local/code/perlcode/array/split.pl: foreach $ki (0..4): $ki=4 $key=$LIST[4]: $key=key0 $HASH{key0}=val0
/home/local/code/perlcode/array/split.pl:
/home/local/code/perlcode/array/split.pl: @LIST=values(%HASH):
/home/local/code/perlcode/array/split.pl: @LIST=values(%HASH): @LIST=vala val2 val1 valb val0
/home/local/code/perlcode/array/split.pl: @LIST=values(%HASH): join('|',@LIST)=vala|val2|val1|valb|val0
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): @LIST=vala val2 val1 valb val0
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): $val=vala
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): $val=val2
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): $val=val1
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): $val=valb
/home/local/code/perlcode/array/split.pl: foreach $val (@LIST): $val=val0
/home/local/code/perlcode/array/split.pl:



#top unshift


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji unshift() jest następująca:


Powiązane:
pop(), push(), shift(), unshift(),

Opis:
description



#top values


Documentacja online: perldoc.perl.org | www.tutorialspoint.com

Deklaracja funkcji values() jest następująca:


Powiązane:
join(), keys(), split(), values(),

Opis:
description





Zmodyfikowany ostatnio: 2014/09/02 10:07:51 (9 lat temu), textsize: 36,2 kB, htmlsize: 65,4 kB

Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników