From 9c2150664e6140b5da8d55eb23b28857d156566f Mon Sep 17 00:00:00 2001 From: Hizenberg469 Date: Sat, 22 Feb 2025 18:58:48 +0000 Subject: [PATCH] switch case done --- perl/wiki | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) diff --git a/perl/wiki b/perl/wiki index 5021632..8842878 100644 --- a/perl/wiki +++ b/perl/wiki @@ -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"} + } + +