นี่คือคำสั่ง FvwmPerl ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
FvwmPerl - ตัวจัดการ fvwm Perl และตัวประมวลผลล่วงหน้า
เรื่องย่อ
FvwmPerl ควรเกิดจาก fvwm(1) สำหรับการใช้งานปกติ
ในการรันโมดูลนี้ ให้วางคำสั่งนี้ไว้ที่ใดที่หนึ่งในการกำหนดค่า:
โมดูล FvwmPerl [พารามิเตอร์]
หรือ:
โมดูลซิงโครไนซ์ FvwmPerl [พารามิเตอร์]
หากคุณต้องการเริ่มส่งคำสั่งไปยัง FvwmPerl ทันที
DESCRIPTION
โมดูลนี้มีวัตถุประสงค์เพื่อขยายคำสั่ง fvwm ด้วยพลังการเขียนสคริปต์ Perl ช่วยให้
เพื่อฝังนิพจน์ Perl ในไฟล์กำหนดค่า fvwm และสร้างคำสั่ง fvwm
การร้องขอ
หากคุณต้องการเรียกใช้ FvwmPerl อินสแตนซ์ที่ไม่ซ้ำกันและต่อเนื่อง ขอแนะนำให้
ทำสิ่งนี้จาก ฟังก์ชั่นเริ่มต้น. เรียกจากด้านบนก็เป็นไปได้ แต่เกี่ยวข้องกับ
บางประเด็นที่ไม่ได้กล่าวถึงในที่นี้
AddToFunc StartFunction I โมดูล FvwmPerl
มีสวิตช์บรรทัดคำสั่งหลายตัว:
Fvwmเพิร์ล [ --ประเมิน ไลน์ ] [ --โหลด ไฟล์ ] [ --การประมวลผลล่วงหน้า [ --อ้าง ถ่าน ] [ --วินิด กว้าง ] [
--ซม ] [ --ส่งจมูก ] [ --noremove ] [ ไลน์ | ไฟล์ ] ] [ --ส่งออก [ชื่อ] ] [ --อยู่ ] [
--โนล็อค ] [ นามแฝง ]
สวิตช์แบบยาวอาจย่อมาจากสวิตช์แบบตัวอักษรเดียวแบบสั้น
-e|--ประเมิน บรรทัด - ประเมินรหัส Perl ที่กำหนด
-l|--โหลด ไฟล์ - ประเมินรหัส Perl ในไฟล์ที่กำหนด
-p|--การประมวลผลล่วงหน้า [ ไฟล์ ] - ประมวลผลไฟล์กำหนดค่า fvwm ที่กำหนดล่วงหน้า
5 ตัวเลือกต่อไปนี้ใช้ได้เฉพาะร่วมกับ --การประมวลผลล่วงหน้า ตัวเลือก
-c|--ซม บรรทัด - คำสั่ง fvwm ที่จะประมวลผลล่วงหน้าแทน file
-q|--อ้าง ถ่าน - เปลี่ยนค่าเริ่มต้น '%' ใบเสนอราคา
-w|--วินิด wid - ตั้งค่าบริบทหน้าต่างที่ชัดเจน (ควรเริ่มต้นด้วยตัวเลข อาจอยู่ใน ต.ค. หรือ
แบบฟอร์มฐานสิบหก; รหัสหน้าต่างนี้เขียนทับบริบทหน้าต่างโดยปริยาย หากมี)
--ส่งจมูก - ห้ามส่งไฟล์ที่ประมวลผลล่วงหน้าไปที่ fvwm for อ่านing ค่าเริ่มต้นคือส่ง
มีประโยชน์สำหรับการประมวลผลล่วงหน้าไฟล์กำหนดค่าที่ไม่ใช่ fvwm
--noremove - ห้ามลบไฟล์ที่ประมวลผลล่วงหน้าหลังจากส่งไปที่ fvwm for อ่านอิ้ง,
ค่าเริ่มต้นคือลบ มีประโยชน์สำหรับการดีบัก
-x|--ส่งออก [ชื่อ] - กำหนดฟังก์ชันทางลัด fvwm (โดยค่าเริ่มต้น ฟังก์ชันสองชื่อคือ
"Eval" และ "") ตัวเลือกนี้หมายถึง --อยู่.
-s|--อยู่ - ดำเนินการต่อไปหลังจาก --ประเมิน, --โหลด or --การประมวลผลล่วงหน้า กำลังดำเนินการ โดย
ค่าเริ่มต้น โมดูลจะไม่คงอยู่ในกรณีนี้ เช่น --โนสเตย์ สันนิษฐาน
--โนล็อค - เมื่อมีหนึ่งใน 3 ตัวเลือกการดำเนินการ ตัวเลือกนี้จะทำให้เกิดการปลดล็อก fvwm
โดยทันที. โดยค่าเริ่มต้น การดำเนินการที่ร้องขอจะดำเนินการพร้อมกัน สิ่งนี้ทำให้
ความแตกต่างเมื่อเรียกใช้เช่น:
ModuleSynchronous FvwmPerl -- ประมวลผล someconfig.ppp ล่วงหน้า
If --โนล็อค ถูกเพิ่มที่นี่ โมดูลซิงโครนัส กลับมาทันที สังเกตว่า โมดูล รับคืน
ทันทีโดยไม่คำนึงถึงตัวเลือกนี้
ใช้ ALIAS
นามแฝงอนุญาตให้มีการเรียกใช้โมดูลหลายรายการและทำงานแยกกันกับการเรียกใช้ทั้งหมด
นี่คือตัวอย่าง:
โมดูลซิงโครนัส FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest ประเมิน $a = 2 + 2; $b = $a
SendToModule FvwmPerl-JustTest eval cmd("Echo 2 + 2 = $b")
KillModule FvwmPerl FvwmPerl-เพียงทดสอบ
การประมวลผลล่วงหน้า ตัวอย่าง
หนึ่งในโซลูชันโปรโพรเซสซิงที่มีประสิทธิภาพคือส่งผ่านการกำหนดค่า fvwm ทั้งหมดด้วย
ฝังโค้ด perl เป็น "FvwmPerl --preprocess" อีกวิธีหนึ่งคือการเขียน Perl
สคริปต์ที่สร้างคำสั่ง fvwm และส่งเพื่อดำเนินการ สคริปต์นี้อาจโหลดได้
ใช้ "FvwmPerl --load" มีวิธีแก้ปัญหาระดับกลางที่ประมวลผลล่วงหน้าเท่านั้น
แยกบรรทัดการกำหนดค่า (หรือดำเนินการคำสั่ง perl แยกต่างหากที่
สร้างคำสั่ง fvwm)
ข้อมูลโค้ดต่อไปนี้เพิ่มความสามารถของเลขคณิตและการเขียนสคริปต์สตริงให้กับบาง
สายที่ต้องการสิ่งนี้ ในการใช้สิ่งนี้ คุณต้องเริ่ม FvwmPerl เป็นคำสั่งแรกของคุณ ดังนั้น
เพื่อจะได้ขอให้เตรียมคำสั่งอื่นๆ ไว้ล่วงหน้า
โมดูลซิงโครไนซ์ FvwmPerl
AddToFunc
+ ฉัน SendToModule FvwmPerl พรีโพรเซส -c -- $*
. Exec exec xterm -name xterm-%{++$i}% # ใช้ชื่อเฉพาะ
. GotoDesk 0 %{ $[desk.n] + 1 }% # ไปที่โต๊ะถัดไป
. Exec exec %{ -x "/usr/bin/X11/aterm" ? "aterm" : "xterm" }% -sb
#ตั้งกลางหน้าต่าง
ถัดไป (MyWindow) เคลื่อนไหว \
%{($WIDTH - $[w.width]) / 2}%p %{($HEIGHT - $[w.height]) / 2}%p
. Exec exec xmessage %{2 + 2}% # เครื่องคิดเลขอย่างง่าย
. %{main::show_message(2 + 2 "เป็นเครื่องคิดเลขอีกเครื่องหนึ่ง"); ""}%
การกระทำ
มีการดำเนินการหลายอย่างที่ FvwmPerl อาจดำเนินการ:
ประเมิน รหัส perl
ประเมินบรรทัดของรหัส Perl
ฟังก์ชั่นพิเศษ ซม.("สั่งการ") อาจใช้ในรหัส Perl เพื่อส่งคำสั่งกลับไปที่
fvwm.
หากรหัส Perl มีข้อผิดพลาด จะถูกพิมพ์ไปยังสตรีมข้อผิดพลาดมาตรฐานด้วย
[FvwmPerl][ประเมิน]: นำหน้าส่วนหัว
โหลด ชื่อไฟล์
โหลดไฟล์รหัส Perl หากไฟล์ไม่ผ่านการรับรองโดยสมบูรณ์ จะถูกค้นหาใน
ไดเร็กทอรีผู้ใช้ $FVWM_USERDIR (ปกติคือ ~/.fvwm) และไดเร็กทอรีข้อมูลทั้งระบบ
$FVWM_DATADIR
ฟังก์ชั่นพิเศษ ซม.("สั่งการ") อาจใช้ในรหัส Perl เพื่อส่งคำสั่งกลับไปที่
fvwm.
หากรหัส Perl มีข้อผิดพลาด จะถูกพิมพ์ไปยังสตรีมข้อผิดพลาดมาตรฐานด้วย
[FvwmPerl][โหลด]: นำหน้าส่วนหัว
ก่อนการประมวลผล [-q|--quote ถ่าน] [-c|--cmd] [เส้น | ไฟล์]
พรีโพรเซส fvwm config ไฟล์ หรือ (ถ้า --cmd ได้รับ) เส้น. ไฟล์นี้มีบรรทัดที่
ไม่ถูกแตะต้อง (โดยปกติคือคำสั่ง fvwm) และโค้ด Perl ที่จัดรูปแบบไว้ล่วงหน้าเป็นพิเศษนั่นคือ
แปรรูปและเปลี่ยน ข้อความที่อยู่ใน %{ ... }% ตัวคั่นที่อาจเริ่มต้นได้ทุกที่
บนบรรทัดและสิ้นสุดที่ใดก็ได้ในบรรทัดเดียวกันหรือบรรทัดอื่น คือรหัส Perl
โครงการ หุ้น พารามิเตอร์เปลี่ยนตัวคั่นรหัส Perl หากได้รับตัวอักษรตัวเดียวเช่น
'@' ตัวคั่นคือ @{ ... }@. ถ้าใบเสนอราคาที่กำหนดคือ 2 ตัวอักษรเช่น <>, คำพูด
เป็น <{ ... }>
รหัส Perl ถูกแทนที่ด้วยผลการประเมิน เช่น %{$a = "c"; ++$a}%
จะถูกแทนที่ด้วย "d"
การประเมินไม่เหมือน ประเมิน และ โหลด เสร็จสิ้นภายใต้แพ็คเกจ PreprocessNamespace
และไม่มี ใช้ เข้มงวดดังนั้นคุณจึงมีอิสระที่จะใช้ชื่อตัวแปรใดๆ โดยไม่ต้องกลัว
ความขัดแย้ง อย่าใช้ตัวแปรที่ยังไม่ได้กำหนดค่าเพื่อหมายถึง undef หรือรายการว่าง (พวกเขา
จริงๆ แล้วอาจเริ่มต้นโดยการดำเนินการก่อนการประมวลผลก่อนหน้า) และทำการล้างข้อมูล if
จำเป็น ตัวแปรและฟังก์ชันใน หลัก แพ็คเกจยังมีอยู่นะคะ
::ซม. () หรือ ::ข้าม()แต่ไม่ควรเข้าถึงในขณะที่
การประมวลผลล่วงหน้า
มีฟังก์ชั่นพิเศษ ประกอบด้วย(ไฟล์) ที่โหลดไฟล์ ประมวลผลล่วงหน้า และ
ส่งคืนผลลัพธ์ที่ประมวลผลล่วงหน้า หลีกเลี่ยงการเรียกซ้ำ
หากรหัส Perl ที่ฝังอยู่มีข้อผิดพลาด จะถูกพิมพ์ไปยังข้อผิดพลาดมาตรฐาน
สตรีมและต่อท้ายด้วย [FvwmPerl][ประมวลผลล่วงหน้า]: หัวข้อ. ผลลัพธ์ของ
การทดแทนว่างเปล่าในกรณีนี้
ตัวแปรต่อไปนี้อาจใช้ในโค้ด Perl:
$USER, $DISPLAY, $WIDTH, $HEIGHT, $FVWM_VERSION, $FVWM_MODULEDIR, $FVWM_DATADIR,
$FVWM_USERDIR
คำสั่งตามบรรทัดต่อไปนี้จะรับรู้เมื่อประมวลผลล่วงหน้า พวกเขาคือ
ประมวลผลหลังจากแทนที่รหัส Perl (ถ้ามี)
%ทำซ้ำ นับ
ทำให้บรรทัดต่อไปนี้ซ้ำ นับ ครั้ง
%การกำหนดค่าโมดูล โมดูล-ชื่อ [ ทำลาย ]
ทำให้บรรทัดต่อไปนี้ถูกตีความว่าเป็นคอนฟิกูเรชันโมดูลที่กำหนด ถ้า
มีการระบุ "ทำลาย" การกำหนดค่าโมดูลก่อนหน้าจะถูกทำลายก่อน
%อุปสรรค อุปสรรค
นำหน้าบรรทัดต่อไปนี้ด้วยเครื่องหมายคำพูด อุปสรรค.
%ปลาย ใดๆ-ทางเลือก-ความคิดเห็น
สิ้นสุดคำสั่งใด ๆ ที่อธิบายข้างต้น อาจซ้อนกัน
ตัวอย่าง:
% คำนำหน้า "AddToFunc SwitchToWindow ฉัน"
Iconify ปิด
ปิดบังหน้าต่าง
ยก
วาร์ปทูวินโดว์ 50 50
%จบ
%ModuleConfig FvwmPager ทำลาย
ชุดสี 0
แบบอักษร lucidasans-10
เดสก์ท็อปสเกล28
มินิไอคอน
% สิ้นสุดโมดูล Config FvwmPager
% คำนำหน้า "ทั้งหมด (MyWindowToAnimate) ResizeMove"
100 100 %{($WIDTH - 100) / 2}% %{($HEIGHT - 100) / 2}%
%ซ้ำ %{$count}%
br w+2c w+2c w-1c w-1c
%จบ
%ซ้ำ %{$count}%
br w-2c w-2c w+1c w+1c
%จบ
%สิ้นสุดคำนำหน้า
พารามิเตอร์ก่อนการประมวลผลเพิ่มเติม --nosend และ --noremove อาจได้รับด้วย ดูของพวกเขา
คำอธิบายที่ด้านบน
ส่งออก [func-ชื่อ]
ส่งไปที่ fvwm คำจำกัดความของฟังก์ชันทางลัดที่ช่วยเปิดใช้งานต่างๆ
การทำงานของโมดูล (เช่น ประเมิน, โหลด และ ก่อนการประมวลผล).
ชื่อฟังก์ชัน (func-ชื่อ) อาจคั่นด้วยเครื่องหมายจุลภาคหรือ/และช่องว่าง โดยค่าเริ่มต้น,
สองฟังก์ชัน "Eval" และ "." จะถือว่า
การกระทำจริงที่กำหนดไว้ในฟังก์ชันจะเดาจากชื่อฟังก์ชัน ถ้าเป็นไปได้
โดยที่ชื่อฟังก์ชัน "." สงวนไว้สำหรับ ก่อนการประมวลผล การกระทำ
ตัวอย่างเช่น คำสั่ง fvwm ทั้งสองคำสั่ง
SendToModule MyPerl ส่งออก PerlEval,PP
FvwmPerl --ส่งออก PerlEval,PP MyPerl
กำหนดฟังก์ชันทางลัดสองอย่างต่อไปนี้:
ทำลายFunc PerlEval
AddToFunc ฉัน SendToModule MyPerl eval $*
ทำลายFunc PP
AddToFunc ฉัน SendToModule MyPerl preprocess -c -- $*
อาจมีการร้องขอ 4 การกระทำเหล่านี้ด้วยวิธีใดวิธีหนึ่งจาก 3 วิธี: 1) ในบรรทัดคำสั่งเมื่อ FvwmPerl is
เรียกใช้ (ในกรณีนี้ FvwmPerl อายุสั้นเว้นแต่ --อยู่ or --ส่งออก จะได้รับด้วย) 2)
โดยการส่งข้อความที่เกี่ยวข้องใน fvwm config โดยใช้ SendToModule 3) โดยการเรียก
ฟังก์ชัน perl ที่สอดคล้องกันในโค้ด perl
ฟังก์ชั่น
มีฟังก์ชันหลายอย่างที่อาจเรียกรหัส Perl:
ซม.($fvwm_command)
ในกรณีที่ ประเมิน or โหลด - ส่งกลับไปที่ fvwm a string $fvwm_command. ในกรณีที่
ก่อนการประมวลผล - ต่อท้ายสตริง $fvwm_command ไปยังเอาต์พุตของโค้ด Perl ที่ฝังตัว
do_eval ($perl_code)
ฟังก์ชันนี้เทียบเท่ากับ ประเมิน ฟังก์ชั่นบนสตริง $perl_code,
อธิบายไว้ข้างต้น.
โหลด ($ชื่อไฟล์)
ฟังก์ชันนี้เทียบเท่ากับ โหลด ฟังก์ชั่นในไฟล์ $filename, อธิบาย
ข้างบน.
พรีโพรเซส (@พารามส์ ["-ค $คำสั่ง"] [$ชื่อไฟล์])
ฟังก์ชันนี้เทียบเท่ากับ ก่อนการประมวลผล ฟังก์ชั่นด้วยพารามิเตอร์ที่กำหนด
และไฟล์ $filename ที่อธิบายไว้ข้างต้น
ส่งออก($func_names, [$do_unexport])
ฟังก์ชันนี้เทียบเท่ากับ ส่งออก ฟังก์ชั่นด้วย $func_names ที่กำหนด
อธิบายไว้ข้างต้น. อาจด้วย ยกเลิกการส่งออก ชื่อฟังก์ชันถ้าพารามิเตอร์ที่สองเป็นจริง
ชื่อฟังก์ชันควรคั่นด้วยเครื่องหมายจุลภาคหรือ/และช่องว่าง ถ้า $func_names is
ว่างแล้วฟังก์ชัน "Eval" และ "." จะถือว่า
หยุด()
ยุติโมดูล
ข้าม()
ข้ามส่วนที่เหลือของโค้ดเรียกกลับของเหตุการณ์ เช่น โมดูลจะกลับไปฟัง new
เหตุการณ์ของโมดูล
ปลดล็อค()
ยกเลิกการซิงโครไนซ์การเรียกกลับเหตุการณ์จาก fvwm ซึ่งอาจเป็นประโยชน์ในการป้องกันการชะงักงัน
นั่นคือโดยปกติ fvwm จะฆ่าโมดูลที่ไม่ตอบสนองหากการเรียกกลับของเหตุการณ์ไม่ได้
เสร็จใน โมดูลหมดเวลา วินาที สิ่งนี้จะป้องกันได้
ตัวอย่างนี้ทำให้ FvwmPerl ระงับการดำเนินการชั่วคราวเป็นเวลาหนึ่งนาที:
SendModule FvwmPerl eval ปลดล็อค (); นอนหลับ(60);
อย่างไรก็ตาม ให้ตรวจสอบว่าไม่มีทางที่ fvwm ส่งข้อความใหม่ในขณะที่โมดูลเป็น
ไม่ว่าง และ fvwm ถูกล็อกในข้อความใหม่นี้นานเกินไป ดูเพิ่มเติมที่ ถอดออก
โซลูชันหากคุณต้องการการดำเนินการที่ยาวนาน
ถอด ()
แยกและแยกรหัสการโทรกลับเหตุการณ์ที่เหลือออกจากกระบวนการหลัก นี้อาจจะ
มีประโยชน์ในการป้องกันการฆ่าโมดูลหากการเรียกกลับเหตุการณ์ควรใช้เวลานาน
ให้แล้วเสร็จและอาจทำได้ในลูกที่แยกจากกัน ลูกที่แยกจากกันอาจจะยัง
ส่งคำสั่งไปที่ fvwm (ไม่ต้องพึ่งพาสิ่งนี้) แต่ไม่ได้รับเหตุการณ์แน่นอนมัน
ออกทันทีหลังจากดำเนินการเรียกกลับเสร็จสิ้น
ถ้าคุณใช้ ถอด ()ดีกว่าส่งคำสั่งไปที่ fvwm ในกระบวนการเดียว (ตัวหลักหรือ
ที่แยกออกมา) การทำอย่างอื่นมักจะทำให้เกิดความขัดแย้ง
show_message($msg, $title[, $use_stderr_too=1])
แสดงหน้าต่างโต้ตอบพร้อมข้อความที่กำหนด โดยใช้เครื่องมือ X ใดก็ตามที่อยู่ในเครื่องหมาย
ระบบ
ดู FVWM::โมดูล::ชุดเครื่องมือ::show_message สำหรับข้อมูลเพิ่มเติม
ตัวแปร
มีหลายตัวแปรทั่วโลกใน หลัก เนมสเปซที่อาจใช้ในperl
รหัส:
$a, $b, ... $h
@a, @b, ... @h
%ก, %ข, ... %ชม
ทั้งหมดถูกกำหนดให้เป็นค่าว่างและอาจใช้เพื่อเก็บสถานะระหว่าง
การเรียกการกระทำ FvwmPerl ที่แตกต่างกัน (ประเมิน และ โหลด).
หากคุณต้องการชื่อตัวแปรที่อ่านง่ายขึ้น ให้เขียนว่า "ไม่มี 'vars' ที่เข้มงวด" ที่จุดเริ่มต้นของ
ทุกรหัส Perl หรือใช้แฮชสำหรับสิ่งนี้ เช่น:
$h{id} = $h{ชื่อแรก} " " . $h{second_name}
หรือใช้ชื่อแพ็คเกจ เช่น
@MyMenu::terminals = qw( xterm rxvt );
$MyMenu::item_num = @MyMenu::terminals;
อาจมีตัวเลือกการกำหนดค่าในการเปิดและปิดความเข้มงวด
ข้อความ
FvwmPerl อาจได้รับข้อความโดยใช้คำสั่ง fvwm SendToModule ชื่อความหมายและ
พารามิเตอร์ของข้อความเหมือนกับการกระทำที่เกี่ยวข้องดังที่อธิบายไว้ข้างต้น
นอกจากนี้ ข้อความ หยุด ทำให้โมดูลหยุดทำงาน
ข้อความ ยกเลิกการส่งออก [func-ชื่อ] เลิกทำเอฟเฟกต์ของ ส่งออกอธิบายไว้ใน ACTION
มาตรา.
ข้อความ กอง ดัมพ์เนื้อหาของตัวแปรที่เปลี่ยนแปลง (ยังไม่)
ตัวอย่าง
การทดสอบง่ายๆ:
SendToModule FvwmPerl ประมาณ $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval โหลด($h{dir} . "/test.fpl")
SendToModule FvwmPerl โหลด $[HOME]/test.fpl
SendToModule FvwmPerl ประมวลผลล่วงหน้า config.ppp
SendToModule FvwmPerl ส่งออก Eval,PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl ยกเลิกการเอ็กซ์พอร์ต PerlEval,PerlLoad,PerlPP
SendToModule FvwmPerl หยุด
ตัวอย่างต่อไปนี้จัดการพื้นหลังรูทใน fvwmrc สามารถเพิ่มคำสั่งเหล่านี้ได้ทั้งหมด
ไปที่ StartFunction
โมดูล FvwmPerl -- ส่งออก PerlEval
# ค้นหา pixmaps พื้นหลังทั้งหมดเพื่อใช้ในภายหลัง
PerlEval $a = $ENV{HOME} . "/bg"; \
opendir DIR, $a; @b = grep { /xpm$/ } readdir (DIR); ปิด DIR
# สร้างเมนูพื้นหลัง pixmaps
AddToMenu พื้นหลังของฉัน ชื่อ "พื้นหลังของฉัน"
PerlEval foreach $b (@b) \
{ cmd("AddToMenu MyBackgrounds '$b' Exec fvwm-root $a/$b") }
# เลือกพื้นหลังแบบสุ่มเพื่อโหลดเมื่อเริ่มต้น
PerlEval cmd ("AddToFunc \
InitFunction + I Exec exec fvwm-root $a/" . $b[int(random(@b))])
หลบหนี
ส่งไปยังโมดูล เช่นเดียวกับคำสั่ง fvwm อื่น ๆ ที่ขยายตัวแปรนำหน้าหลายดอลลาร์
ซึ่งอาจขัดแย้งกับการใช้ดอลลาร์ perl คุณอาจหลีกเลี่ยงสิ่งนี้ได้โดยนำหน้า SendToModule
ด้วยเส้นประชั้นนำ 2 บรรทัดต่อไปนี้ในแต่ละคู่มีค่าเท่ากัน:
SendToModule FvwmPerl eval $$d = "$[แสดง]"
-SendToModule FvwmPerl eval $d = "$ ENV{แสดง}"
SendToModule FvwmPerl eval \
cmd("โต๊ะก้อง=$d, display=$$d")
SendToModule FvwmPerl พรีโพรเซส -c \
โต๊ะก้อง=%("$d")%, display=%{$$d}%
อีกวิธีหนึ่งในการหลีกเลี่ยงการหลบหนีจากสัญลักษณ์พิเศษ เช่น ดอลลาร์และแบ็กสแลชคือ
สร้างไฟล์ perl ใน ~/.fvwm แล้วโหลดมัน:
SendToModule FvwmPerl โหลด build-menus.fpl
หากคุณต้องการประมวลผลคำสั่งล่วงหน้าหนึ่งคำสั่งที่ขึ้นต้นด้วยเส้นประ คุณควรนำหน้าด้วยคำสั่ง
"--".
# นี่พิมพ์โต๊ะปัจจุบันเช่น "0"
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# นี่พิมพ์ "$d"
SendToModule FvwmPerl พรีโพรเซส -c -- -Echo "$%{"d"}%"
# พิมพ์ "$d" (SendToModule ขยาย $$ เป็น $)
SendToModule FvwmPerl พรีโพรเซส -c -- -Echo "$$%{"d"}%"
# นี่พิมพ์ "$$d"
-SendToModule FvwmPerl พรีโพรเซส -c -- -Echo "$$%{"d"}%"
อีกครั้ง ขอแนะนำให้ใส่คำสั่งของคุณลงในไฟล์และประมวลผลไฟล์ล่วงหน้าแทน
คำเตือน
FvwmPerl เขียนด้วย Perl และจัดการกับ Perl เป็นไปตามคำขวัญ Perl ที่มีชื่อเสียง:
"มีหลายวิธีที่จะทำ" ดังนั้นทางเลือกเป็นของคุณ
ต่อไปนี้คือคู่เพิ่มเติมของเส้นที่เท่ากัน:
โมดูล FvwmPerl --load "my.fpl" --stay
โมดูล FvwmPerl -e 'load("my.fpl")' -s
กระบวนการล่วงหน้า SendToModule FvwmPerl --quote '@' my.ppp
SendToModule FvwmPerl ประมวลผลล่วงหน้า ({quote => '@'}, "my.ppp");
คำเตือน คุณอาจส่งผลกระทบต่อวิธีการทำงานของ FvwmPerl โดยการประเมินโค้ด Perl ที่เหมาะสม นี่
ถือเป็นคุณสมบัติไม่ใช่จุดบกพร่อง แต่โปรดอย่าทำเช่นนี้ เขียนโมดูล fvwm ของคุณเอง
ใน Perl แทน
ใช้ FvwmPerl ออนไลน์โดยใช้บริการ onworks.net