FvwmPerl - ออนไลน์ในคลาวด์

นี่คือคำสั่ง 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
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



โปรแกรมออนไลน์ Linux และ Windows ล่าสุด