switch case done

This commit is contained in:
2025-02-22 18:58:48 +00:00
parent 98761e7104
commit 9c2150664e

175
perl/wiki
View File

@@ -312,9 +312,184 @@
@group2 : cef5 xcc360g cef8 cef4c
-> Joining/Splitting the array elements
* Joining:
Syntax:
join("v", @array);
v: String which would be between the elements of array
#### join will return a string ####
* Splitting:
Syntax:
split("v", $string);
v: String which act a delimiter to split the give string
#### split will return array of strings ####
For ex:
@cards = qw(csc01 cef5 xcc369g);
print "============ Joining array elements to make string ==============";
$csvCards = join(",", @cards);
print "\$csvCards = $csvCards\n";
$dsvCards = join("--", @cards);
print "\$dsvCards = $dsvCards\n";
print "============ Splitting array elements to make array =============";
@s2aCards = split("--", $dsvCards);
print "\@s2aCards = @s2aCards\n";
-> my keyword:
my keyword is used in perl to limit the scope of variable
to particular function or any scope where it is defined.
-> Sorting and Merging:
* Sorting:
Syntax:
sort(@array);
* Merging:
Syntax:
(@array1,@array2);
For ex:
@cards = qw(csc01 cef5 xcc360g);
print "=========== Sorting & Merging ============";
@sortedCards = sort(@cards);
print "\@sortedCards = @sortedCards\n";
@futureCards = qw(cef9 csc03);
@presentNfutureCards = (@cards,@futureCards);
print "\@presentNfutureCards = @presentNfutureCards\n"
Output:
========== Sorting & Merging ===========
@sortedCards = cef5 csc01 xcc360g
@presentnfutureCards = csc01 cef 5 xcc360g cef9 csc03
-> HashMap:
Syntax:
@hashMap = ('key1', 'value1', 'key2', 'value2', 'key3', 'value3');
@hashMap = ('key1' => 'value1' , 'key2' => 'value2' , 'key3' => 'value3');
For ex:
print "========== HashMap ===========";
%cardG1CPUarch = ('csc01, 'mips', 'xcc360g', 'ppc', 'cef4c', 'ppc');
print "\$cardG1CPUarch{'csc01'} = $cardG1CPUarch{'csc01'}\n";
print "\$cardG1CPUarch{'xcc360g'} = $cardG1CPUarch{'xcc360g'}\n";
print "\$cardG1CPUarch{'cef4c'} = $cardG1CPUarch{'cef4c'}\n";
Output:
=========== HashMap ===========
$cardG1CPUarch{'csc01'} = mips
$cardG1CPUarch{'xcc360g'} = ppc
$cardG1CPUarch{'cef4c'} = ppc
print "========== HashMap ===========";
%cardG1CPUarch = ('csc01' => 'mips', 'xcc360g' => 'ppc', 'cef4c' => 'ppc');
print "\$cardG1CPUarch{'csc01'} = $cardG1CPUarch{'csc01'}\n";
print "\$cardG1CPUarch{'xcc360g'} = $cardG1CPUarch{'xcc360g'}\n";
print "\$cardG1CPUarch{'cef4c'} = $cardG1CPUarch{'cef4c'}\n";
Output:
=========== HashMap ===========
$cardG1CPUarch{'csc01'} = mips
$cardG1CPUarch{'xcc360g'} = ppc
$cardG1CPUarch{'cef4c'} = ppc
-> Slicing HashMap, Key - Values - Size of hashmap, Adding/Removing from Hashmap
Ex:
%cardG1CPUarch = ('csc01', 'mips', 'xcc360g', 'ppc', 'cef4c', 'ppe');
print "=============Slicing Hashes================";
@cpuSlice1 = @cardG1CPUarch('csc01', 'cef4c');
print "\@cpuSlice1 = @cpuSlice1\n";
print "=============Keys & Values & size of hash=============\n"
@g1Cards = keys @cardG1CPUarch;
print "\@g1Cards = @g1Cards\n";
@g1CPU = values %cardG1CPUarch;
print "\@g1CPU = @g1CPU\n"
#everything true for arrays can be used for ex:
print "\@g1CPU[2] = @g1CPU[2]\n";
$g1HashSize = @g1Cards; #donwgrading the array to scalar.
print "\$g1HashSize = $g1HashSize\n";
print "===============Adding or removing elements================\n";
$cardG1CPUarch{'PCsim"} = 'i386';
@g1Cards = keys %cardG1CPUarch;
print "\@g1Cards = @g1Cards\n";
@g1CPU = values %cardG1CPUarch;
print "\@g1CPU = @g1CPU\n".\;
print "removing cef4c from %cardG1CPUarch\n\n";
delete $cardG1CPUarch{'cef4c'};
@g1Cards = keys %cardG1CPUarch;
print "\@g1Cards = @g1Cards\n";
@g1CPU = values %cardG1CPUarch;
print "\@g1CPU = @g1CPU\n";
print "====================HashMap end========================"
-> Ternary operator in perl
For Ex:
$isSimulator = ($cardG1CPUarch{'PCsim'} == 'i386') ? "Yes" : "No";
print " \$isSimulator - $isSimulator\n";
-> Branching in Perl (if-else):
For ex:
$a = 20;
unless( $a == 30 ){
#if condition is false then print the following
printf "a has a value which is not 20\n"
}
elseif( $a == 30 ){
#if condition is true then print the following
printf "a has a value which is 30\n";
}
else{
#if none of the above condition is met
printf "a has a value which is $a\n";
}
-> switch in Perl (switch case):
#switch with fall thru.
#need Switch to be installed on system using cpan
For ex:
use Switch;
@array = (10, 20, 30);
%hash = ('key1' => 10, 'key2' => 20);
switch($a){
case 10 { print "number 100\n"; next; }
case "a" { print "string a" }
case (\@array) { print "number in list" }
case (\%hash) { print "entry in hash" }
else { print "previous case not true"}
}