ผู้ประกอบการ Perl
ผู้ประกอบการบอกคอมไพเลอร์ที่จะดำเนินการสัญลักษณ์การคำนวณทางคณิตศาสตร์หรือตรรกะที่เฉพาะเจาะจงเช่น: 3 + 2 = 5
ภาษา Perl สร้างความมั่งคั่งของผู้ประกอบการที่เรามองหลายที่เหมือนกัน:
- ดำเนินการทางคณิตศาสตร์
- การเปรียบเทียบ
- ดำเนินการทางตรรกะ
- ผู้ประกอบการที่ได้รับมอบหมาย
- ผู้ประกอบการระดับบิต
- ผู้ประกอบการอ้าง
- ผู้ประกอบการอื่น ๆ
- ลำดับความสำคัญผู้ประกอบการ
ดำเนินการทางคณิตศาสตร์
ตัวอย่างแบบฟอร์มที่เราตั้งค่าตัวแปร $ เป็น 10, $ 20 B
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
+ | งูพิษ | 30 ผลการ $ A + B $ |
- | การลบ | $ A - $ B ผลที่ได้คือ -10 |
* * * * | การคูณ | $ A * $ B 200 ผลการค้นหา |
/ | หมวด | $ B / $ ผล 2 |
% | การดำเนินงาน Modulo ที่เหลือหลังจากการหาร | $ B $% ผลคือ 0 |
** | ยกกำลัง | $ A $ ** B 10 ผลพลังงาน 20 |
ตัวอย่าง
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a , \$b = $b\n"; $c = $a + $b; print '$a + $b = ' . $c . "\n"; $c = $a - $b; print '$a - $b = ' . $c . "\n"; $c = $a * $b; print '$a * $b = ' . $c . "\n"; $c = $a / $b; print '$a / $b = ' . $c . "\n"; $c = $a % $b; print '$a % $b = ' . $c. "\n"; $a = 2; $b = 4; $c = $a ** $b; print '$a ** $b = ' . $c . "\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = 10 , $b = 20 $a + $b = 30 $a - $b = -10 $a * $b = 200 $a / $b = 0.5 $a % $b = 10 $a ** $b = 16
การเปรียบเทียบ
ตัวอย่างแบบฟอร์มที่เราตั้งค่าตัวแปร $ เป็น 10, $ 20 B
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
== | ตรวจสอบค่าของทั้งสองตัวถูกดำเนินการเท่ากันถ้าพวกเขามีค่าเท่ากันแล้วเงื่อนไขเป็นจริงเท็จอย่างอื่น | ($ A $ == ข) เป็นเท็จ |
! = | ตรวจสอบค่าของทั้งสองตัวถูกดำเนินการเท่ากันถ้าไม่ได้เป็นเงื่อนไขเท่าจริงเท็จอย่างอื่น | ($ A! = $ B) เป็นความจริง |
<=> | ตรวจสอบค่าของทั้งสองตัวถูกดำเนินการเท่ากันถ้าจำนวนน้อยกว่าจำนวนทางด้านซ้ายของกลับด้านขวาของ -1 ผลตอบแทน 0 ถ้าพวกเขามีค่าเท่ากันถ้าจำนวนมากกว่าจำนวนด้านซ้ายไปทางขวาของผลตอบแทนที่ 1 | ($ A $ <=> ข) กลับ -1 |
> | ตรวจสอบค่าของตัวถูกดำเนินการด้านซ้ายมีค่ามากกว่าค่าของตัวถูกดำเนินการที่เหมาะสมและถ้าเงื่อนไขเป็นจริงเท็จอย่างอื่น | ($ A> $ ข) กลับเท็จ |
< | ตรวจสอบค่าของตัวถูกดำเนินการทางด้านซ้ายจะน้อยกว่าค่าของตัวถูกดำเนินการที่เหมาะสมและถ้าเงื่อนไขเป็นจริงเท็จอย่างอื่น | ($ A <$ ข) ผลตอบแทนจริง |
> = | ตรวจสอบค่าของตัวถูกดำเนินการทางด้านซ้ายที่มีค่ามากกว่าหรือเท่ากับค่าของตัวถูกดำเนินการที่เหมาะสมและถ้าเงื่อนไขเป็นจริงเท็จอย่างอื่น | ($ A> = $ ข) กลับเท็จ |
<= | ตรวจสอบค่าของตัวถูกดำเนินการทางด้านซ้ายจะน้อยกว่าหรือเท่ากับค่าของตัวถูกดำเนินการที่เหมาะสมและถ้าเงื่อนไขเป็นจริงเท็จอย่างอื่น . | ($ A <= $ ข) ผลตอบแทนจริง |
ตัวอย่าง
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a , \$b = $b\n"; if( $a == $b ){ print "$a == \$b 结果 true\n"; }else{ print "\$a == \$b 结果 false\n"; } if( $a != $b ){ print "\$a != \$b 结果 true\n"; }else{ print "\$a != \$b 结果 false\n"; } $c = $a <=> $b; print "\$a <=> \$b 返回 $c\n"; if( $a > $b ){ print "\$a > \$b 结果 true\n"; }else{ print "\$a > \$b 结果 false\n"; } if( $a >= $b ){ print "\$a >= \$b 结果 true\n"; }else{ print "\$a >= \$b 结果 false\n"; } if( $a < $b ){ print "\$a < \$b 结果 true\n"; }else{ print "\$a < \$b 结果 false\n"; } if( $a <= $b ){ print "\$a <= \$b 结果 true\n"; }else{ print "\$a <= \$b 结果 false\n"; }
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = 10 , $b = 20 $a == $b 结果 false $a != $b 结果 true $a <=> $b 返回 -1 $a > $b 结果 false $a >= $b 结果 false $a < $b 结果 true $a <= $b 结果 true
ตารางต่อไปนี้เช่นตัวแปร $ ถูกตั้งค่าเป็น "ABC", $ b เพื่อ "XYZ" จากนั้นใช้ตัวดำเนินการเปรียบเทียบในการคำนวณผล
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
LT | ตรวจสอบสตริงด้านซ้ายจะน้อยกว่าสตริงด้านขวาเพื่อกลับถ้ามันเป็นความจริงที่เป็นเท็จอย่างอื่น | ($ A $ LT ข) ผลตอบแทนจริง |
GT | ตรวจสอบว่าสตริงด้านซ้ายมากกว่าสตริงด้านขวาเพื่อกลับถ้ามันเป็นความจริงที่เป็นเท็จอย่างอื่น | ($ A $ GT ข) กลับเท็จ |
Le | ตรวจสอบสตริงด้านซ้ายมีค่าน้อยกว่าหรือเท่ากับสตริงด้านขวาถ้ามันกลับจริงมิฉะนั้นกลับเท็จ | ($ A $ Le ข) คืนค่าจริง |
GE | ตรวจสอบว่าสตริงด้านซ้ายที่มีค่ามากกว่าหรือเท่ากับสตริงด้านขวาถ้ามันกลับจริงมิฉะนั้นกลับเท็จ | ($ A $ GE ข) กลับเท็จ |
อีคิว | ตรวจสอบสตริงเท่ากับสตริงด้านซ้ายไปทางขวาถ้ามันคือการกลับจริงมิฉะนั้นกลับเท็จ | ($ A $ EQ ข) กลับเท็จ |
ภาคตะวันออกเฉียงเหนือ | ตรวจสอบสตริงด้านซ้ายไม่เท่ากับสตริงด้านขวาเพื่อกลับถ้ามันเป็นความจริงที่เป็นเท็จอย่างอื่น | ($ a ne $ B) คืนจริง |
ซีเอ็มพี | ถ้าสตริงมากกว่าด้านขวาของสตริงซ้ายส่งกลับ 1 ถ้าพวกเขามีผลตอบแทนเท่ากับ 0 ถ้าสตริงเป็นสตริงไปทางขวาของด้านซ้ายจะน้อยกว่า -1 | ($ A $ CMP ข) กลับ -1 |
ตัวอย่าง
#!/usr/bin/perl $a = "abc"; $b = "xyz"; print "\$a = $a ,\$b = $b\n"; if( $a lt $b ){ print "$a lt \$b 返回 true\n"; }else{ print "\$a lt \$b 返回 false\n"; } if( $a gt $b ){ print "\$a gt \$b 返回 true\n"; }else{ print "\$a gt \$b 返回 false\n"; } if( $a le $b ){ print "\$a le \$b 返回 true\n"; }else{ print "\$a le \$b 返回 false\n"; } if( $a ge $b ){ print "\$a ge \$b 返回 true\n"; }else{ print "\$a ge \$b 返回 false\n"; } if( $a ne $b ){ print "\$a ne \$b 返回 true\n"; }else{ print "\$a ne \$b 返回 false\n"; } $c = $a cmp $b; print "\$a cmp \$b 返回 $c\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = abc ,$b = xyz abc lt $b 返回 true $a gt $b 返回 false $a le $b 返回 true $a ge $b 返回 false $a ne $b 返回 true $a cmp $b 返回 -1
ผู้ประกอบการที่ได้รับมอบหมาย
ตัวอย่างแบบฟอร์มที่เราตั้งค่าตัวแปร $ เป็น 10, $ 20 B
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
= | ดำเนินการกำหนดค่าง่ายในตัวถูกดำเนินการที่เหมาะสมที่จะถูกดำเนินการทางด้านซ้าย | $ C = $ A + B $ $ $ A + B จะกำหนดค่าของ $ ค |
+ = | แคนาดาและผู้ประกอบการที่ได้รับมอบหมายเป็นผลมาจากการเพิ่มตัวถูกดำเนินการจะถูกดำเนินการทางด้านซ้ายขวาได้รับมอบหมายให้ดำเนินซ้าย | $ C + = $ เท่ากับ $ c = $ C + $ a |
- = | บันทึกและผู้ประกอบการที่ได้รับมอบหมายที่ถูกดำเนินการจะถูกดำเนินการทางด้านซ้ายด้านขวาถูกลบออกกำหนดผลที่จะถูกดำเนินการทางด้านซ้าย | $ C - = $ เท่ากับ $ c = $ C - $ a |
* = | คูณและผู้ประกอบการที่ได้รับมอบหมายด้านขวาของตัวถูกดำเนินการด้านซ้ายถูกคูณด้วยตัวถูกดำเนินการกำหนดผลที่จะถูกดำเนินการทางด้านซ้าย | $ C * = $ เท่ากับ $ c = $ C * $ a |
/ = | นอกจากที่ได้รับมอบหมายและผู้ประกอบการถูกดำเนินการด้านซ้ายหารด้วยขวาของตัวถูกดำเนินการกำหนดผลที่จะถูกดำเนินการทางด้านซ้าย | $ C / = $ เท่ากับ $ c = $ C / $ a |
% = | Modulo และผู้ประกอบการที่ได้รับมอบหมาย, ผลรวมของสองแม่พิมพ์ตัวถูกดำเนินการที่ได้รับมอบหมายจะถูกดำเนินการทางด้านซ้าย | $ C% = $ เท่ากับ $ c = $ C% ใน |
** = | ยกกำลังและมอบหมายผู้ประกอบการผลรวมของสองตัวถูกดำเนินการคูณด้วยอำนาจที่ได้รับมอบหมายให้ดำเนินซ้าย | $ C ** = $ เท่ากับ $ c = $ C $ a ** |
ตัวอย่าง
#!/usr/bin/perl $a = 10; $b = 20; print "\$a = $a ,\$b = $b\n"; $c = $a + $b; print "赋值后 \$c = $c\n"; $c += $a; print "\$c = $c ,运算语句 \$c += \$a\n"; $c -= $a; print "\$c = $c ,运算语句 \$c -= \$a\n"; $c *= $a; print "\$c = $c ,运算语句 \$c *= \$a\n"; $c /= $a; print "\$c = $c ,运算语句 \$c /= \$a\n"; $c %= $a; print "\$c = $c ,运算语句 \$c %= \$a\n"; $c = 2; $a = 4; print "\$a = $a , \$c = $c\n"; $c **= $a; print "\$c = $c ,运算语句 \$c **= \$a\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = 10 ,$b = 20 赋值后 $c = 30 $c = 40 ,运算语句 $c += $a $c = 30 ,运算语句 $c -= $a $c = 300 ,运算语句 $c *= $a $c = 30 ,运算语句 $c /= $a $c = 0 ,运算语句 $c %= $a $a = 4 , $c = 2 $c = 16 ,运算语句 $c **= $a
บิท
ผู้ประกอบการระดับบิตทำหน้าที่เกี่ยวกับบิตและบิตโดยการดำเนินการบิต
การตั้งค่า $ A = 60, $ B = 13 ตอนนี้เป็นตัวแทนในรูปแบบไบนารีพวกเขามีรายละเอียดดังนี้
$a = 0011 1100 $b = 0000 1101 ----------------- $a&$b = 0000 1100 $a|$b = 0011 1101 $a^$b = 0011 0001 ~$a = 1100 0011
บิตสนับสนุนคอมพิวเตอร์สัญลักษณ์ Perl ดังนี้
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
& | ถ้าทั้งสองมีอยู่ในตัวถูกดำเนินการไบนารีและผู้ประกอบการในการคัดลอกผล | ($ $ A & B) จะเป็น 12, ไบนารี 0000 1100 |
| | หากอยู่ในตัวถูกดำเนินการอย่างใดอย่างหนึ่งไบนารีหรือผู้ประกอบการในการคัดลอกผล | ($ A | $ B) จะเป็น 61, ไบนารีคือ 00111101 |
^ | หากอยู่ในหนึ่งในตัวถูกดำเนินการ แต่ไม่ได้ไปพร้อม ๆ กันที่มีอยู่ในทั้งสองตัวถูกดำเนินการ, ผู้ประกอบการ XOR ไบนารีสำเนาไปยังผลที่ตามมา | ($ a ^ B $) จะเป็น 49, ไบนารีคือ 00110001 |
~ | ผู้ประกอบการเติมเต็มเจ้าตัวเป็นผู้ประกอบการเอกเป็น "พลิก" ผลตำแหน่ง | (~ $ A) จะเป็น -61 ไบนารี 1100 0011 รูปแบบที่สมบูรณ์ของเลขฐานสองที่มีสัญลักษณ์ |
<< | Binary ประกอบกะซ้าย ค่าของตัวถูกดำเนินการด้านซ้ายเพื่อเลื่อนไปทางซ้ายและขวาถูกดำเนินการตามจำนวนที่ระบุตัวเลข | $ A << 2 จะเป็น 240, ไบนารีคือ 11110000 |
>> | Binary ประกอบการเปลี่ยนแปลงทางด้านขวา ค่าของตัวถูกดำเนินการด้านซ้ายย้ายขวาถูกดำเนินการตามจำนวนที่ระบุของบิตไปทางขวา | $ A >> 2 จะอยู่ที่ 15 ไบนารีคือ 0000 1111 |
ตัวอย่าง
#!/usr/bin/perl use integer; $a = 60; $b = 13; print "\$a = $a , \$b = $b\n"; $c = $a & $b; print "\$a & \$b = $c\n"; $c = $a | $b; print "\$a | \$b = $c\n"; $c = $a ^ $b; print "\$a ^ \$b = $c\n"; $c = ~$a; print "~\$a = $c\n"; $c = $a << 2; print "\$a << 2 = $c\n"; $c = $a >> 2; print "\$a >> 2 = $c\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = 60 , $b = 13 $a & $b = 12 $a | $b = 61 $a ^ $b = 49 ~$a = -61 $a << 2 = 240 $a >> 2 = 15
ดำเนินการทางตรรกะ
ดำเนินการทางตรรกะ Perl ในตารางต่อไปนี้
ตัวอย่างแบบฟอร์มที่เราตั้งค่าตัวแปร $ เป็นจริง $ B เป็นเท็จ
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
และ | ตรรกะและผู้ประกอบการผู้ประกอบการ หากทั้งสองตัวถูกดำเนินการเป็นจริงเงื่อนไขเป็นจริง | ($ และ $ ข) เป็นเท็จ |
&& | C-สไตล์ตรรกะและผู้ประกอบการผู้ประกอบการ หากทั้งสองตัวถูกดำเนินการเป็นจริงเงื่อนไขเป็นจริง | ($ A $ && ข) เป็นเท็จ |
หรือ | ตรรกะหรือผู้ประกอบการ หากทั้งสองตัวถูกดำเนินการใด ๆ ที่ไม่ใช่ศูนย์เงื่อนไขเป็นจริง | ($ A หรือ B $) เป็นจริง |
|| | C-รูปแบบลอจิคัลหรือผู้ประกอบการ หากทั้งสองตัวถูกดำเนินการใด ๆ ที่ไม่ใช่ศูนย์เงื่อนไขเป็นจริง | ($ A $ || ข) เป็นความจริง |
ไม่ | ตรรกะผู้ประกอบการไม่ได้ มันตีความรัฐตรรกะของตัวถูกดำเนินการ ถ้าเงื่อนไขเป็นจริงผู้ประกอบการไม่ตรรกะจะทำให้มันเป็นเท็จ | ไม่ได้ ($ และ $ B) เป็นจริง |
ตัวอย่าง
#!/usr/bin/perl $a = true; $b = false; print "\$a = $a , \$b = $b\n"; $c = ($a and $b); print "\$a and \$b = $c\n"; $c = ($a && $b); print "\$a && \$b = $c\n"; $c = ($a or $b); print "\$a or \$b = $c\n"; $c = ($a || $b); print "\$a || \$b = $c\n"; $a = 0; $c = not($a); print "not(\$a)= $c\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = true , $b = false $a and $b = false $a && $b = false $a or $b = true $a || $b = true not($a)= 1
การดำเนินการให้คำปรึกษา
Perl คำพูดของผู้ประกอบการในตารางต่อไปนี้
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
Q {} | สตริงกับคำพูดเดียว | Q {} ABCD ผลการค้นหาสำหรับ 'ABCD' |
QQ {} | สตริงของคำพูดคู่ | QQ {} ABCD ผลการค้นหาสำหรับ "ABCD" |
QX {} | สตริงกับ backquotes | QX {} ABCD ผลที่ได้คือ `abcd` |
ตัวอย่าง
#!/usr/bin/perl $a = 10; $b = q{a = $a}; print "q{a = \$a} = $b\n"; $b = qq{a = $a}; print "qq{a = \$a} = $b\n"; # 使用 unix 的 date 命令执行 $t = qx{date}; print "qx{date} = $t\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
q{a = $a} = a = $a qq{a = $a} = a = 10 qx{date} = 2016年 6月10日 星期五 16时22分33秒 CST
ผู้ประกอบการอื่น ๆ
นอกจากนี้ยังกล่าวถึงข้างต้นเราประกอบนอก, Perl ยังสนับสนุนผู้ประกอบการดังต่อไปนี้:
ผู้ประกอบการ | ลักษณะ | ตัวอย่าง |
---|---|---|
. | จุด (.) จะใช้ในการเชื่อมต่อสองสาย | ถ้า $ a = "Run", $ B = "OOB" $ a. ผล $ B สำหรับ "w3big" |
x | ผู้ประกอบการ X กลับสตริงของซ้ำ | ( '-' x 3) การส่งออกเป็น --- |
.. | .. ในช่วงของผู้ประกอบการ | (2..5) เป็นเอาท์พุท (2, 3, 4, 5) |
++ | ผู้ประกอบการเพิ่มค่าจำนวนเต็มจะเพิ่มขึ้นโดยที่ 1 | $ A = 10, $ A ++ จะออก 11 |
- | ผู้ประกอบการลดค่าจำนวนเต็มลดลง 1 | $ A = 10, $ เอาท์พุท a-- 9 |
-> | ระบุวิธีการเรียนสำหรับลูก | $ Obj -> $ เป็นตัวแทนของวัตถุ $ obj $ วิธีการที่ |
ตัวอย่าง
#!/usr/bin/perl $a = "run"; $b = "oob"; print "\$a = $a , \$b = $b\n"; $c = $a . $b; print "\$a . \$b = $c\n"; $c = "-" x 3; print "\"-\" x 3 = $c\n"; @c = (2..5); print "(2..5) = @c\n"; $a = 10; $b = 15; print "\$a = $a , \$b = $b\n"; $a++; $c = $a ; print "\$a 执行 \$a++ = $c\n"; $b--; $c = $b ; print "\$b 执行 \$b-- = $c\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = run , $b = oob $a . $b = w3big "-" x 3 = --- (2..5) = 2 3 4 5 $a = 10 , $b = 15 $a 执行 $a++ = 11 $b 执行 $b-- = 14
ลำดับความสำคัญผู้ประกอบการ
ตารางต่อไปนี้แสดง Perl ผู้ประกอบการมีความสำคัญภาษา:
ผู้ประกอบการผู้ประกอบการ | ผูกพัน |
---|---|
++ - | ไม่ |
- ~ ,! | ขวาไปซ้าย |
** | ขวาไปซ้าย |
= ~! ~ | จากซ้ายไปขวา |
* /% X | จากซ้ายไปขวา |
+, - ,. | จากซ้ายไปขวา |
<< >> | จากซ้ายไปขวา |
-e, -R, | ไม่ |
<, <=,>,> =, LT, Le, GT, GE | จากซ้ายไปขวา |
== ,! = <=>, EQ, NE, CMP | จากซ้ายไปขวา |
& | จากซ้ายไปขวา |
| ^ | จากซ้ายไปขวา |
&& | จากซ้ายไปขวา |
|| | จากซ้ายไปขวา |
.. | จากซ้ายไปขวา |
หรือไม่และ: | ขวาไปซ้าย |
= + =, - = * = | ขวาไปซ้าย |
อื่น ๆ | |
, | จากซ้ายไปขวา |
ไม่ | จากซ้ายไปขวา |
และ | จากซ้ายไปขวา |
หรือแฮคเกอร์ | จากซ้ายไปขวา |
ตัวอย่าง
#!/usr/bin/perl $a = 20; $b = 10; $c = 15; $d = 5; $e; print "\$a = $a, \$b = $b, \$c = $c ,\$d = $d\n"; $e = ($a + $b) * $c / $d; print "(\$a + \$b) * \$c / \$d = $e\n"; $e = (($a + $b) * $c )/ $d; print "((\$a + \$b) * \$c) / \$d = $e\n"; $e = ($a + $b) * ($c / $d); print "(\$a + \$b) * (\$c / \$d ) = $e\n"; $e = $a + ($b * $c ) / $d; print "\$a + (\$b * \$c )/ \$d = $e\n";
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
$a = 20, $b = 10, $c = 15 ,$d = 5 ($a + $b) * $c / $d = 90 (($a + $b) * $c) / $d = 90 ($a + $b) * ($c / $d ) = 90 $a + ($b * $c )/ $d = 50