คำถามติดแท็ก perl

Perl เป็นภาษาโปรแกรมเชิงพลวัตขั้นสูงและมีวัตถุประสงค์ทั่วไปซึ่งเป็นที่รู้จักกันดีในเรื่องการสนับสนุนการแสดงออกปกติและความสามารถในการวิเคราะห์สตริง โปรดใช้แท็กนี้สำหรับคำถามเกี่ยวกับ Perl โดยทั่วไป สำหรับสิ่งต่าง ๆ ที่เกี่ยวข้องกับภาษาใหม่ (แต่เกี่ยวข้อง) Raku (เดิมชื่อ "Perl 6") โปรดใช้แท็ก raku สำหรับนิพจน์ทั่วไปสไตล์ Perl ในภาษาอื่น ๆ ให้ใช้แท็ก regex หรือหากเป็นไปตามไลบรารี PCRE แท็ก pcre

12
ความแตกต่างระหว่าง 'ของฉัน' และ 'ของเรา' ใน Perl คืออะไร?
ฉันรู้ว่าสิ่งที่myอยู่ใน Perl มันกำหนดตัวแปรที่มีอยู่เฉพาะในขอบเขตของบล็อกที่มีการกำหนดไว้ อะไรourทำอย่างไร วิธีการที่ไม่ourแตกต่างจากmy?
188 perl  scope 

7
ฉันจะทำการแทนที่ Perl บนสตริงในขณะที่เก็บต้นฉบับได้อย่างไร
ใน Perl เป็นวิธีที่ดีในการดำเนินการแทนบนสตริงโดยใช้การแสดงออกปกติและเก็บค่าไว้ในตัวแปรที่แตกต่างกันโดยไม่ต้องเปลี่ยนต้นฉบับได้อย่างไร ฉันมักจะเพียงแค่คัดลอกสตริงไปยังตัวแปรใหม่แล้วผูกไว้กับs///regex ที่จะแทนที่ในสตริงใหม่ แต่ฉันสงสัยว่ามีวิธีที่ดีกว่าการทำเช่นนี้? $newstring = $oldstring; $newstring =~ s/foo/bar/g;
180 regex  perl  replace 

6
ฉันจะเปรียบเทียบสองสตริงใน Perl ได้อย่างไร
ฉันจะเปรียบเทียบสองสตริงใน Perl ได้อย่างไร ฉันกำลังเรียนรู้ Perl ฉันมีคำถามพื้นฐานนี้ค้นหาได้ที่นี่ใน StackOverflow และไม่พบคำตอบที่ดีดังนั้นฉันคิดว่าฉันจะถาม

9
การหาคำอธิบายที่ชัดเจนเกี่ยวกับความขัดแย้งที่เห็นได้ชัดเกี่ยวกับภาษาที่พิมพ์อย่างอ่อน
ฉันคิดว่าฉันเข้าใจการพิมพ์ที่รัดกุมแต่ทุกครั้งที่ฉันมองหาตัวอย่างสำหรับการพิมพ์ที่อ่อนแอฉันจะพบตัวอย่างของภาษาการเขียนโปรแกรมที่บังคับ / แปลงชนิดโดยอัตโนมัติ ตัวอย่างเช่นในบทความนี้ชื่อTyping: Strong vs. Weak, Static vs. Dynamicบอกว่า Python นั้นถูกพิมพ์อย่างมากเพราะคุณได้รับการยกเว้นถ้าคุณพยายามที่จะ: หลาม 1 + "1" Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str' อย่างไรก็ตามสิ่งดังกล่าวเป็นไปได้ใน Java และใน C # และเราไม่พิจารณาว่าพวกเขาพิมพ์เพียงเล็กน้อยเพื่อสิ่งนั้น ชวา int a = 10; String b = …
178 c#  java  python  perl  weakly-typed 


22
ฉันจะรับพา ธ แบบเต็มไปยังสคริปต์ Perl ที่รันอยู่ได้อย่างไร
ฉันมีสคริปต์ Perl และต้องกำหนดเส้นทางแบบเต็มและชื่อไฟล์ของสคริปต์ระหว่างการดำเนินการ ผมค้นพบว่าขึ้นอยู่กับว่าคุณเรียกสคริปต์ที่$0แตกต่างกันและบางครั้งก็มีและบางครั้งเพียงแค่fullpath+filename filenameเนื่องจากไดเรกทอรีการทำงานอาจแตกต่างกันไปเช่นกันฉันไม่สามารถคิดวิธีที่จะได้รับfullpath+filenameสคริปต์อย่างน่าเชื่อถือ ใครมีวิธีแก้ปัญหา?
168 perl  path  location 

11
ฉันจะพิมพ์เนื้อหาของแฮชใน Perl ได้อย่างไร
ฉันพิมพ์แฮชของฉันตามจำนวน # ถัง / # ที่จัดสรร ฉันจะพิมพ์เนื้อหาของแฮชของฉันได้อย่างไร หากไม่ใช้การwhileวนซ้ำจะเป็นที่นิยมมากที่สุด (ตัวอย่างเช่นการซับแบบหนึ่งจะดีที่สุด)
167 perl  hash  printing 

22
ฉันจะลบบรรทัดใหม่ได้อย่างไรถ้าเป็นอักขระตัวสุดท้ายในไฟล์
ฉันมีไฟล์บางไฟล์ที่ฉันต้องการลบขึ้นบรรทัดใหม่หากเป็นอักขระตัวสุดท้ายในไฟล์ od -cแสดงให้ฉันเห็นว่าคำสั่งที่ฉันเรียกใช้นั้นเขียนไฟล์ด้วยการขึ้นบรรทัดใหม่: 0013600 n t > \n ฉันได้ลองเล่นเล่ห์เหลี่ยมเล็กน้อย แต่สิ่งที่ดีที่สุดที่ฉันคิดได้คือไม่ได้เล่นเล่ห์เหลี่ยม: sed -e '$s/\(.*\)\n$/\1/' abc ความคิดใด ๆ วิธีการทำเช่นนี้?
162 linux  perl  shell  awk  sed 


20
ในขณะที่ (1) สำหรับ (;;) มีความแตกต่างความเร็วหรือไม่
รุ่นยาว ... เพื่อนร่วมงานยืนยันในวันนี้หลังจากเห็นการใช้งานของฉันwhile (1)ในสคริปต์ Perl ที่for (;;)เร็วขึ้น ฉันแย้งว่าพวกเขาควรจะเหมือนกันโดยหวังว่าล่ามจะปรับความแตกต่างให้เหมาะสม ฉันตั้งค่าสคริปต์ที่จะเรียกใช้ 1,000,000,000 สำหรับการวนซ้ำวนซ้ำและในขณะเดียวกันก็วนซ้ำและบันทึกเวลาระหว่างกัน ฉันไม่พบความแตกต่างที่เห็นคุณค่า เพื่อนร่วมงานของฉันบอกว่าศาสตราจารย์คนหนึ่งบอกเขาว่าการwhile (1)เปรียบเทียบกำลังดำเนินการอยู่1 == 1และfor (;;)ไม่ใช่ เราทำการทดสอบซ้ำกับ 100x จำนวนการวนซ้ำด้วย C ++ และความแตกต่างนั้นเล็กน้อย อย่างไรก็ตามเป็นตัวอย่างที่แสดงให้เห็นว่าโค้ดที่คอมไพล์ได้เร็วขึ้นสามารถเทียบกับภาษาสคริปต์ได้ เวอร์ชั่นสั้น... มีเหตุผลใดที่จะชอบwhile (1)มากกว่าfor (;;)ถ้าคุณต้องการวงวนไม่สิ้นสุดเพื่อแยกออกจากกัน? หมายเหตุ:หากยังไม่ชัดเจนจากคำถาม นี่เป็นการสนทนาทางวิชาการที่สนุกสนานระหว่างเพื่อนสองคน ฉันรู้ว่านี่ไม่ใช่แนวคิดที่สำคัญอย่างยิ่งที่โปรแกรมเมอร์ทุกคนควรทนทุกข์ทรมาน ขอบคุณสำหรับคำตอบที่ดีทั้งหมดที่ฉัน (และฉันแน่ใจว่าคนอื่น ๆ ) ได้เรียนรู้เล็ก ๆ น้อย ๆ จากการสนทนานี้ ปรับปรุง:เพื่อนร่วมงานดังกล่าวชั่งน้ำหนักด้วยคำตอบด้านล่าง อ้างถึงที่นี่ในกรณีที่ถูกฝังอยู่ มันมาจากโปรแกรมเมอร์แอสเซมบลีของ AMD เขาระบุว่าโปรแกรมเมอร์ C (ผู้ประพันธ์) ไม่ทราบว่ารหัสของพวกเขาไม่มีประสิทธิภาพ เขากล่าวในวันนี้ว่าคอมไพเลอร์ gcc …

30
คุณสมบัติที่ซ่อนของ Perl?
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ อะไรคือคุณสมบัติภาษาที่มีประโยชน์จริงๆ แต่ลึกลับใน Perl ที่คุณสามารถใช้เพื่อทำงานที่เป็นประโยชน์ได้จริง? แนวทาง: พยายาม จำกัด คำตอบสำหรับแกน Perl ไม่ใช่ CPAN โปรดยกตัวอย่างและคำอธิบายสั้น ๆ คุณสมบัติที่ซ่อนอยู่ยังพบในคุณสมบัติที่ซ่อนอยู่ของภาษาอื่น: (ทั้งหมดนี้มาจากคำตอบของ Corion ) ค อุปกรณ์ของดัฟฟ์ พกพาและมาตรฐาน ค# คำพูดสำหรับรายการและสตริงที่คั่นด้วยช่องว่าง เนมสเปซที่ใช้นามแฝงได้ ชวา Initalizers คงที่ JavaScript ฟังก์ชั่นเป็นพลเมืองชั้นหนึ่ง บล็อกขอบเขตและการปิด วิธีการเรียกและ accessors ทางอ้อมผ่านตัวแปร ทับทิม การกำหนดวิธีการผ่านรหัส PHP เอกสารออนไลน์ที่แพร่หลาย วิธีเวทย์มนตร์ การอ้างอิงสัญลักษณ์ หลาม การสลับค่าหนึ่งบรรทัด ความสามารถในการแทนที่ฟังก์ชั่นหลักด้วยฟังก์ชันของคุณเอง คุณสมบัติที่ซ่อนอื่น ๆ : ผู้ประกอบการ: ผู้ประกอบการเสมือนบูล …


5
ความแตกต่างระหว่าง \ w และ \ b ​​อักขระเมตานิพจน์ทั่วไป
ทุกคนสามารถอธิบายความแตกต่างระหว่าง\bและ\wตัวบ่งชี้การแสดงออกปกติได้หรือไม่ มันเป็นความเข้าใจของฉันว่าทั้งสอง metacharacters ใช้สำหรับขอบเขตของคำ นอกจากนี้อักขระเมตาใดที่มีประสิทธิภาพสำหรับเนื้อหาหลายภาษา
142 javascript  java  php  regex  perl 

10
เปลี่ยนชื่อไฟล์และไดเรกทอรี (เพิ่มคำนำหน้า)
ฉันต้องการเพิ่มคำนำหน้าในโฟลเดอร์และไดเรกทอรีทั้งหมด ตัวอย่าง: ฉันมี Hi.jpg 1.txt folder/ this.file_is.here.png another_folder.ok/ ฉันต้องการเพิ่มคำนำหน้า "PRE_" PRE_Hi.jpg PRE_1.txt PRE_folder/ PRE_this.file_is.here.png PRE_another_folder.ok/ ความนับถือ,
142 linux  perl  shell 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.