Latest web development tutorials

ผู้ประกอบการ 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