Perl - ภาพรวมไวยากรณ์

Perl ยืมไวยากรณ์และแนวคิดจากหลายภาษา: awk, sed, C, Bourne Shell, Smalltalk, Lisp และแม้แต่ภาษาอังกฤษ อย่างไรก็ตามมีความแตกต่างบางประการระหว่างภาษา บทนี้ออกแบบมาเพื่อให้คุณได้รับความเร็วในการใช้ไวยากรณ์ที่คาดหวังใน Perl อย่างรวดเร็ว

โปรแกรม Perl ประกอบด้วยลำดับของการประกาศและคำสั่งซึ่งทำงานจากด้านบนลงล่าง ลูปรูทีนย่อยและโครงสร้างควบคุมอื่น ๆ ช่วยให้คุณสามารถข้ามไปมาภายในโค้ดได้ ทุกคำสั่งธรรมดาต้องลงท้ายด้วยอัฒภาค (;)

Perl เป็นภาษารูปแบบอิสระคุณสามารถจัดรูปแบบและเยื้องได้ตามต้องการ Whitespace ทำหน้าที่แยกโทเค็นเป็นส่วนใหญ่ซึ่งแตกต่างจากภาษาเช่น Python ซึ่งเป็นส่วนสำคัญของไวยากรณ์หรือ Fortran ที่ไม่มีสาระ

โปรแกรม Perl แรก

การเขียนโปรแกรมโหมดโต้ตอบ

คุณสามารถใช้ล่าม Perl กับ -eตัวเลือกที่บรรทัดคำสั่งซึ่งให้คุณเรียกใช้คำสั่ง Perl จากบรรทัดคำสั่ง มาลองทำอะไรที่ $ prompt ดังนี้ -

$perl -e 'print "Hello World\n"'

การดำเนินการนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Hello, world

การเขียนโปรแกรมโหมดสคริปต์

สมมติว่าคุณใช้ $ prompt อยู่แล้วให้เปิดไฟล์ข้อความ hello.pl โดยใช้ vi หรือ vim editor และใส่บรรทัดต่อไปนี้ในไฟล์ของคุณ

#!/usr/bin/perl

# This will print "Hello, World"
print "Hello, world\n";

ที่นี่ /usr/bin/perlเป็นไบนารีล่าม Perl จริง ก่อนที่คุณจะดำเนินการสคริปต์ของคุณตรวจสอบให้แน่ใจว่าได้เปลี่ยนโหมดของไฟล์สคริปต์และให้สิทธิ์ในการดำเนินการโดยทั่วไปการตั้งค่า 0755 จะทำงานได้อย่างสมบูรณ์แบบและในที่สุดคุณก็เรียกใช้สคริปต์ข้างต้นดังนี้ -

$chmod 0755 hello.pl
$./hello.pl

การดำเนินการนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Hello, world

คุณสามารถใช้วงเล็บสำหรับอาร์กิวเมนต์ของฟังก์ชันหรือละเว้นได้ตามรสนิยมส่วนตัวของคุณ จำเป็นต้องใช้เป็นครั้งคราวเพื่อชี้แจงประเด็นของความสำคัญ การทำตามคำสั่งสองข้อให้ผลลัพธ์เดียวกัน

print("Hello, world\n");
print "Hello, world\n";

นามสกุลไฟล์ Perl

สามารถสร้างสคริปต์ Perl ภายในโปรแกรมแก้ไขข้อความธรรมดาทั่วไป มีหลายโปรแกรมสำหรับทุกประเภทของแพลตฟอร์ม มีโปรแกรมมากมายที่ออกแบบมาสำหรับโปรแกรมเมอร์พร้อมให้ดาวน์โหลดบนเว็บ

ตามแบบแผน Perl ไฟล์ Perl ต้องถูกบันทึกด้วยนามสกุลไฟล์. pl หรือ. PL เพื่อให้ได้รับการยอมรับว่าเป็นสคริปต์ Perl ที่ใช้งานได้ ชื่อไฟล์สามารถมีตัวเลขสัญลักษณ์และตัวอักษรได้ แต่ต้องไม่มีช่องว่าง ใช้ขีดล่าง (_) ในตำแหน่งของช่องว่าง

ความคิดเห็นใน Perl

ความคิดเห็นในภาษาโปรแกรมใด ๆ เป็นเพื่อนของนักพัฒนา ข้อคิดเห็นสามารถใช้เพื่อทำให้ผู้ใช้โปรแกรมเป็นมิตรและล่ามจะข้ามไปโดยไม่ส่งผลกระทบต่อการทำงานของโค้ด ตัวอย่างเช่นในโปรแกรมด้านบนบรรทัดที่เริ่มต้นด้วยแฮช# เป็นความคิดเห็น

เพียงแค่พูดความคิดเห็นใน Perl เริ่มต้นด้วยสัญลักษณ์แฮชแล้ววิ่งไปที่ท้ายบรรทัด -

# This is a comment in perl

บรรทัดที่ขึ้นต้นด้วย = ถูกตีความว่าเป็นจุดเริ่มต้นของส่วนของเอกสารประกอบแบบฝัง (พ็อด) และบรรทัดที่ตามมาทั้งหมดจนกว่าคอมไพลเลอร์จะละเว้น ต่อไปนี้เป็นตัวอย่าง -

#!/usr/bin/perl

# This is a single line comment
print "Hello, world\n";

=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the 
compiler until the next =cut is encountered.
=cut

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Hello, world

ช่องว่างใน Perl

โปรแกรม Perl ไม่สนใจช่องว่าง โปรแกรมต่อไปนี้ทำงานได้ดีอย่างสมบูรณ์ -

#!/usr/bin/perl

print       "Hello, world\n";

แต่ถ้าช่องว่างอยู่ภายในสตริงที่ยกมาก็จะพิมพ์ตามที่เป็นอยู่ ตัวอย่างเช่น -

#!/usr/bin/perl

# This would print with a line break in the middle
print "Hello
          world\n";

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Hello
          world

ช่องว่างทุกประเภทเช่นช่องว่างแท็บบรรทัดใหม่ ฯลฯ จะเทียบเท่ากับตัวแปลเมื่อใช้ภายนอกเครื่องหมายคำพูด บรรทัดที่มีเฉพาะช่องว่างอาจมีความคิดเห็นเรียกว่าบรรทัดว่างและ Perl จะละเว้นโดยสิ้นเชิง

คำคมเดี่ยวและคู่ใน Perl

คุณสามารถใช้เครื่องหมายคำพูดคู่หรือเครื่องหมายคำพูดเดี่ยวรอบสตริงตามตัวอักษรได้ดังนี้ -

#!/usr/bin/perl

print "Hello, world\n";
print 'Hello, world\n';

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Hello, world
Hello, world\n$

เครื่องหมายคำพูดเดี่ยวและคู่มีความแตกต่างที่สำคัญ คำพูดคู่เท่านั้นinterpolateตัวแปรและอักขระพิเศษเช่นขึ้นบรรทัดใหม่ \ n ในขณะที่เครื่องหมายคำพูดเดี่ยวจะไม่สอดแทรกตัวแปรหรืออักขระพิเศษใด ๆ ตรวจสอบตัวอย่างด้านล่างที่เราใช้ $ a เป็นตัวแปรในการจัดเก็บค่าและพิมพ์ค่านั้นในภายหลัง -

#!/usr/bin/perl

$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

Value of a = 10
Value of a = $a\n$

เอกสาร "ที่นี่"

คุณสามารถจัดเก็บหรือพิมพ์ข้อความหลายบรรทัดได้อย่างสะดวกสบาย แม้ว่าคุณจะสามารถใช้ประโยชน์จากตัวแปรในเอกสาร "ที่นี่" ได้ ด้านล่างนี้เป็นไวยากรณ์ง่ายๆตรวจสอบอย่างรอบคอบว่าต้องไม่มีช่องว่างระหว่าง << และตัวระบุ

ตัวระบุอาจเป็นคำเปล่า ๆ หรือข้อความที่ยกมาเหมือนที่เราใช้ EOF ด้านล่าง หากมีการอ้างอิงตัวระบุประเภทของใบเสนอราคาที่คุณใช้จะเป็นตัวกำหนดการปฏิบัติต่อข้อความภายในเอกสารที่นี่เช่นเดียวกับในการอ้างอิงปกติ ตัวระบุที่ไม่ได้ใส่เครื่องหมายคำพูดทำงานเหมือนเครื่องหมายคำพูดคู่

#!/usr/bin/perl

$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

$var = <<'EOF';
This is case of single quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be
interpolated. For example value of a = 10

This is case of single quote so variable value will be
interpolated. For example value of a = $a

อักขระที่หลบหนี

Perl ใช้อักขระแบ็กสแลช (\) เพื่อหลีกเลี่ยงอักขระประเภทใด ๆ ที่อาจรบกวนโค้ดของเรา ลองดูตัวอย่างที่เราต้องการพิมพ์ double quote และ $ sign -

#!/usr/bin/perl

$result = "This is \"number\"";
print "$result\n";
print "\$result\n";

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

This is "number"
$result

ตัวระบุ Perl

ตัวระบุ Perl คือชื่อที่ใช้เพื่อระบุตัวแปรฟังก์ชันคลาสโมดูลหรืออ็อบเจกต์อื่น ๆ ชื่อตัวแปร Perl เริ่มต้นด้วย $, @ หรือ% ตามด้วยตัวอักษรศูนย์หรือมากกว่าเครื่องหมายขีดล่างและตัวเลข (0 ถึง 9)

Perl ไม่อนุญาตให้ใช้อักขระเครื่องหมายวรรคตอนเช่น @, $ และ% ภายในตัวระบุ Perl คือcase sensitiveภาษาโปรแกรม ด้วยประการฉะนี้$Manpower และ $manpower เป็นตัวระบุสองตัวที่แตกต่างกันใน Perl