ນີ້ແມ່ນຄໍາສັ່ງ FvwmPerl ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
FvwmPerl - ການຫມູນໃຊ້ fvwm perl ແລະຕົວປະມວນຜົນກ່ອນ
ສະຫຼຸບສັງລວມ
FvwmPerl ຄວນຖືກສ້າງໂດຍ fvwm(1) ສໍາລັບການເຮັດວຽກປົກກະຕິ.
ເພື່ອແລ່ນໂມດູນນີ້, ເອົາຄໍາສັ່ງນີ້ໃສ່ບ່ອນໃດບ່ອນຫນຶ່ງໃນການຕັ້ງຄ່າ:
ໂມດູນ FvwmPerl [params]
ຫລື:
ModuleSynchronize FvwmPerl [params]
ຖ້າຫາກວ່າທ່ານຕ້ອງການໃນທັນທີເລີ່ມຕົ້ນການສົ່ງຄໍາສັ່ງກັບ FvwmPerl.
ລາຍລະອຽດ
ໂມດູນນີ້ມີຈຸດປະສົງເພື່ອຂະຫຍາຍຄໍາສັ່ງ fvwm ທີ່ມີພະລັງງານສະຄິບ perl. ມັນເປີດໃຊ້ງານ
ເພື່ອຝັງການສະແດງອອກ perl ໃນໄຟລ໌ fvwm config ແລະສ້າງຄໍາສັ່ງ fvwm.
ການຮຽກຮ້ອງ
ຖ້າທ່ານຕ້ອງການເອີ້ນ instanse ເປັນເອກະລັກແລະຄົງທີ່ຂອງ FvwmPerl, ມັນແນະນໍາໃຫ້.
ເຮັດນີ້ຈາກ ຟັງຊັນເລີ່ມຕົ້ນ. ການໂທຫາມັນຈາກທາງເທິງກໍ່ເປັນໄປໄດ້, ແຕ່ກ່ຽວຂ້ອງກັບ
ບາງບັນຫາທີ່ບໍ່ໄດ້ສົນທະນາຢູ່ທີ່ນີ້.
AddToFunc StartFunction I Module FvwmPerl
ມີຫຼາຍຕົວປ່ຽນເສັ້ນຄໍາສັ່ງ:
FvwmPerl [ --eval ເສັ້ນ ] [ -- ໂຫຼດ ໄຟລ໌ ] [ -- ຂະບວນການກ່ອນ [ --quote char ] [ --winid ກວ້າງ ] [
--cmd ] [ -- nosend ] [ --noremove ] [ເສັ້ນ | ໄຟລ໌ ] ] [ --ສົ່ງອອກ [ຊື່] ] [ --ຢູ່ ] [
--nolock ] [ນາມແຝງ]
ປຸ່ມສະວິດຍາວອາດຈະຖືກຫຍໍ້ເປັນສະວິດໂຕອັກສອນສັ້ນ.
-e|--eval line - ປະເມີນລະຫັດ perl ທີ່ໃຫ້
-l|-- ໂຫຼດ file - ປະເມີນລະຫັດ perl ໃນໄຟລ໌ທີ່ໃຫ້
-p|-- ຂະບວນການກ່ອນ [ ໄຟລ໌ ] - preprocess ໄຟລ໌ fvwm config ທີ່ໃຫ້ໄວ້
5 ທາງເລືອກຕໍ່ໄປນີ້ແມ່ນໃຊ້ໄດ້ພຽງແຕ່ຮ່ວມກັນກັບ -- ຂະບວນການກ່ອນ ທາງເລືອກ.
-c|--cmd ເສັ້ນ - ຄໍາສັ່ງ fvwm ທີ່ຈະດໍາເນີນການລ່ວງຫນ້າແທນທີ່ຈະເປັນໄຟລ໌
-q|--quote char - ປ່ຽນຄ່າເລີ່ມຕົ້ນ '%' quote
-w|--winid wid - ກໍານົດຂອບເຂດ window explicit (ຄວນຈະເລີ່ມຕົ້ນດ້ວຍຕົວເລກ, ອາດຈະຢູ່ໃນເດືອນຕຸລາຫຼື
ຮູບແບບ hex; id window ນີ້ຂຽນທັບເນື້ອໃນ window implicit ຖ້າມີ)
-- nosend - ບໍ່ໄດ້ສົ່ງໄຟລ໌ preprocessed ກັບ fvwm ສໍາລັບການ ອ່ານໃນ, ຄ່າເລີ່ມຕົ້ນແມ່ນສົ່ງ.
ມີປະໂຫຍດສຳລັບການປະມວນຜົນໄຟລ໌ config ທີ່ບໍ່ແມ່ນ fvwm ກ່ອນ.
--noremove - ບໍ່ເອົາໄຟລ໌ preprocessed ຫຼັງຈາກສົ່ງໄປ fvwm ສໍາລັບການ ອ່ານໃນ, ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນເອົາອອກ. ເປັນປະໂຫຍດສໍາລັບການດີບັກ.
-x|--ສົ່ງອອກ [ຊື່] - ກໍານົດຟັງຊັນທາງລັດ fvwm (ຕາມຄ່າເລີ່ມຕົ້ນ, ສອງຟັງຊັນທີ່ມີຊື່
"Eval" ແລະ "."). ທາງເລືອກນີ້ຫມາຍເຖິງ --ຢູ່.
-s|--ຢູ່ - ສືບຕໍ່ການປະຕິບັດຫຼັງຈາກ --eval, -- ໂຫຼດ or -- ຂະບວນການກ່ອນ ຖືກປຸງແຕ່ງ. ໂດຍ
ໃນຕອນຕົ້ນ, ໂມດູນບໍ່ຄົງຢູ່ໃນກໍລະນີນີ້, ie -- ນິ ແມ່ນສົມມຸດ.
--nolock - ໃນເວລາທີ່ຫນຶ່ງໃນ 3 ທາງເລືອກການປະຕິບັດແມ່ນໄດ້ຮັບ, ທາງເລືອກນີ້ເຮັດໃຫ້ເກີດການປົດລັອກ fvwm
ທັນທີ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ການປະຕິບັດທີ່ຮ້ອງຂໍຈະຖືກປະຕິບັດ synchronously; ນີ້ພຽງແຕ່ເຮັດໃຫ້
ຄວາມແຕກຕ່າງໃນເວລາທີ່ເອີ້ນວ່າ:
ModuleSynchronous FvwmPerl --preprocess someconfig.ppp
If --nolock ຖືກເພີ່ມຢູ່ທີ່ນີ້, ModuleSynchronous ກັບຄືນມາທັນທີ. ໃຫ້ສັງເກດວ່າ ໂມດູນ ກັບຄືນມາ
ທັນທີໂດຍບໍ່ຄໍານຶງເຖິງທາງເລືອກນີ້.
ການ ນຳ ໃຊ້ ALIAS
ນາມແຝງອະນຸຍາດໃຫ້ມີການເອີ້ນໃຊ້ໂມດູນຫຼາຍອັນ ແລະເຮັດວຽກແຍກຕ່າງຫາກດ້ວຍການເອີ້ນທັງໝົດ,
ນີ້ແມ່ນຕົວຢ່າງ:
ModuleSynchronous FvwmPerl FvwmPerl-JustTest
SendToModule FvwmPerl-JustTest eval $a = 2 + 2; $b = $a
SendToModule FvwmPerl-JustTest eval cmd("Echo 2 + 2 = $b")
KillModule FvwmPerl FvwmPerl-JustTest
ກຳລັງກະກຽມ EXAMPLE
ຫນຶ່ງໃນການແກ້ໄຂການປຸງແຕ່ງທີ່ມີປະສິດທິພາບແມ່ນເພື່ອຜ່ານການຕັ້ງຄ່າ fvwm ທັງຫມົດດ້ວຍ
ຝັງລະຫັດ perl ໃສ່ "FvwmPerl --preprocess". ວິທີການທາງເລືອກແມ່ນການຂຽນ perl
script ທີ່ຜະລິດຄໍາສັ່ງ fvwm ແລະສົ່ງໃຫ້ພວກເຂົາສໍາລັບການປະຕິບັດ, script ນີ້ອາດຈະຖືກໂຫລດ
ໃຊ້ "FvwmPerl --load". ມີວິທີແກ້ໄຂລະດັບປານກາງ hovere ທີ່ preprocess ເທົ່ານັ້ນ
ເສັ້ນການຕັ້ງຄ່າແຍກຕ່າງຫາກ (ຫຼືທາງເລືອກອື່ນ, ປະຕິບັດຄໍາສັ່ງ perl ແຍກຕ່າງຫາກ
ຜະລິດຄໍາສັ່ງ fvwm).
ຂໍ້ມູນຫຍໍ້ຂອງລະຫັດຕໍ່ໄປນີ້ຈະເພີ່ມຄວາມສາມາດຂອງເລກຄະນິດສາດ ແລະ string scripting ໃຫ້ກັບທີ່ແນ່ນອນ
ສາຍທີ່ຕ້ອງການນີ້. ເພື່ອໃຊ້ມັນ, ທ່ານຕ້ອງການເລີ່ມຕົ້ນ FvwmPerl ເປັນຄໍາສັ່ງທໍາອິດຂອງທ່ານ
ວ່າຄໍາສັ່ງອື່ນໆອາດຈະຖືກຮ້ອງຂໍໃຫ້ preprosessed.
ModuleSynchronize FvwmPerl
AddToFunc .
+ I SendToModule FvwmPerl preprocess -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-code
ປະເມີນເສັ້ນຂອງລະຫັດ perl.
ຫນ້າທີ່ພິເສດ cmd("ຄໍາສັ່ງ") ອາດຈະຖືກນໍາໃຊ້ໃນລະຫັດ perl ເພື່ອສົ່ງຄໍາສັ່ງກັບຄືນໄປບ່ອນ
fvwm.
ຖ້າລະຫັດ perl ມີຂໍ້ຜິດພາດ, ມັນຖືກພິມອອກໄປຫາ stream ຂໍ້ຜິດພາດມາດຕະຖານດ້ວຍ
[FvwmPerl][eval]: ສ່ວນຫົວຖືກນຳໜ້າ.
load ຊື່ເອກະສານ
ໂຫລດໄຟລ໌ຂອງລະຫັດ perl. ຖ້າໄຟລ໌ບໍ່ມີຄຸນສົມບັດຄົບຖ້ວນ, ມັນຖືກຄົ້ນຫາຢູ່ໃນ
ບັນຊີຜູ້ໃຊ້ $FVWM_USERDIR (ປົກກະຕິແລ້ວ ~/.fvwm) ແລະລະບົບຂໍ້ມູນລະບົບກວ້າງ
$FVWM_DATADIR.
ຫນ້າທີ່ພິເສດ cmd("ຄໍາສັ່ງ") ອາດຈະຖືກນໍາໃຊ້ໃນລະຫັດ perl ເພື່ອສົ່ງຄໍາສັ່ງກັບຄືນໄປບ່ອນ
fvwm.
ຖ້າລະຫັດ perl ມີຂໍ້ຜິດພາດ, ມັນຖືກພິມອອກໄປຫາ stream ຂໍ້ຜິດພາດມາດຕະຖານດ້ວຍ
[FvwmPerl][ໂຫຼດ]: ສ່ວນຫົວຖືກນຳໜ້າ.
ຂະບວນການກ່ອນ [-q|--quote char] [-c|--cmd] [ອອນໄລນ໌ | ເອກະສານ]
preprocess fvwm config ເອກະສານ ຫຼື (ຖ້າ --cmd ຖືກມອບໃຫ້) ອອນໄລນ໌. ໄຟລ໌ນີ້ມີແຖວທີ່
ບໍ່ໄດ້ຖືກສໍາຜັດ (ປົກກະຕິແລ້ວຄໍາສັ່ງ fvwm) ແລະລະຫັດ perl preformatted ພິເສດທີ່ເປັນ
ປຸງແຕ່ງແລະທົດແທນ. ຂໍ້ຄວາມຕິດຢູ່ໃນ %{ ... }% ຕົວຂັ້ນ, ທີ່ອາດຈະເລີ່ມຕົ້ນທຸກບ່ອນ
ຢູ່ໃນເສັ້ນແລະສິ້ນສຸດທຸກບ່ອນໃນເສັ້ນດຽວກັນຫຼືເສັ້ນອື່ນ, ແມ່ນລະຫັດ perl.
ໄດ້ quote ພາລາມິເຕີປ່ຽນແປງຕົວຂັ້ນລະຫັດ perl. ຖ້າໃຫ້ char ດຽວ, ຄື
'@', ຕົວຂັ້ນແມ່ນ @{ ... }@. ຖ້າວົງຢືມທີ່ໃຫ້ມາແມ່ນ 2 ຕົວອັກສອນ, ເຊັ່ນ <>, ວົງຢືມ
ມີ <{ ... }>
ລະຫັດ perl ຖືກທົດແທນສໍາລັບຜົນຂອງການປະເມີນຜົນຂອງມັນ. ຄື %{$a = "c"; ++$a}%
ຖືກແທນທີ່ດ້ວຍ "d".
ການປະເມີນຜົນແມ່ນແຕກຕ່າງກັນ ການປະເມີນ ແລະ load ແມ່ນເຮັດພາຍໃຕ້ຊຸດ PreprocessNamespace
ແລະບໍ່ມີ ການນໍາໃຊ້ ຢ່າງເຄັ່ງຄັດ, ດັ່ງນັ້ນເຈົ້າສາມາດໃຊ້ຊື່ຕົວແປໄດ້ໂດຍບໍ່ຕ້ອງຢ້ານ
ຂໍ້ຂັດແຍ່ງ. ພຽງແຕ່ຢ່າໃຊ້ຕົວແປ uninitialized ເພື່ອຫມາຍຄວາມວ່າ undef ຫຼືບັນຊີລາຍຊື່ເປົ່າ (ພວກມັນ
ໃນຄວາມເປັນຈິງອາດຈະໄດ້ຮັບການເລີ່ມຕົ້ນໂດຍການປະຕິບັດ preprocess ທີ່ຜ່ານມາ), ແລະເຮັດຄວາມສະອາດຖ້າຫາກວ່າ
ຕ້ອງການ. ຕົວແປແລະຫນ້າທີ່ຢູ່ໃນ ຕົ້ນຕໍ ຊຸດແມ່ນຍັງມີຢູ່, ເຊັ່ນ:
::cmd() ຫຼື ::ຂ້າມ(), ແຕ່ມັນບໍ່ແມ່ນຄວາມຄິດທີ່ດີທີ່ຈະເຂົ້າເຖິງພວກມັນໃນຂະນະທີ່
ການປຸງແຕ່ງກ່ອນ.
ມີຫນ້າທີ່ພິເສດ ປະກອບດ້ວຍ(ເອກະສານ) ທີ່ໂຫລດໄຟລ໌, preprocesses ມັນແລະ
ສົ່ງຄືນຜົນໄດ້ຮັບທີ່ປຸງແຕ່ງກ່ອນ. ຫຼີກເວັ້ນການ recursion.
ຖ້າລະຫັດ perl ທີ່ຝັງໄວ້ມີຂໍ້ຜິດພາດ, ມັນຖືກພິມເປັນຂໍ້ຜິດພາດມາດຕະຖານ
stream ແລະ prepended ກັບ [FvwmPerl][ຂະບວນການກ່ອນ]: ສ່ວນຫົວ. ຜົນໄດ້ຮັບຂອງ
ໃນກໍລະນີນີ້, ການທົດແທນແມ່ນຫວ່າງເປົ່າ.
ຕົວແປຕໍ່ໄປນີ້ອາດຈະຖືກໃຊ້ໃນລະຫັດ perl:
$USER, $DISPLAY, $WIDTH, $HEIGHT, $FVWM_VERSION, $FVWM_MODULEDIR, $FVWM_DATADIR,
$FVWM_USERDIR
ຄໍາແນະນໍາທີ່ອີງໃສ່ເສັ້ນຕໍ່ໄປນີ້ຖືກຮັບຮູ້ໃນເວລາທີ່ການປຸງແຕ່ງກ່ອນ. ພວກເຂົາແມ່ນ
ປະມວນຜົນຫຼັງຈາກລະຫັດ perl (ຖ້າມີ) ຖືກປ່ຽນແທນ.
%Repeat ນັບ
ເຮັດໃຫ້ເສັ້ນຕໍ່ໄປນີ້ຖືກຊ້ໍາ ນັບ ເວລາ.
%ModuleConfig ຊື່ໂມດູນ [ທໍາລາຍ]
ເຮັດໃຫ້ເສັ້ນຕໍ່ໄປນີ້ຖືກຕີຄວາມວ່າເປັນການຕັ້ງຄ່າໂມດູນທີ່ໃຫ້. ຖ້າ
"ທໍາລາຍ" ແມ່ນກໍານົດການຕັ້ງຄ່າໂມດູນທີ່ຜ່ານມາຖືກທໍາລາຍກ່ອນ.
%Prefix ຄຳ ນຳ ໜ້າ
prefixes ແຖວຕໍ່ໄປນີ້ດ້ວຍວົງຢືມ ຄຳ ນຳ ໜ້າ.
%ສຸດທ້າຍ any-optional-comment
ສິ້ນສຸດຄໍາສັ່ງໃດໆທີ່ອະທິບາຍຂ້າງເທິງ, ອາດຈະຖືກວາງໄວ້.
ຕົວຢ່າງ:
%ຄຳນຳໜ້າ "AddToFunc SwitchToWindow I"
ປິດ Iconify
WindowShade off
ຍົກ
WarpToWindow 50 50
%ສິ້ນສຸດ
%ModuleConfig FvwmPager ທໍາລາຍ
ຊຸດສີ 0
ຟອນ lucidasans-10
DeskTopScale 28
ໄອຄອນຂະໜາດນ້ອຍ
%End ModuleConfig FvwmPager
%Prefix "ທັງໝົດ (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
%ສິ້ນສຸດ
%ຄຳນຳໜ້າຈົບ
ຕົວກໍານົດການ preprocess ເພີ່ມເຕີມ --nosend ແລະ --noremove ອາດຈະໄດ້ຮັບເຊັ່ນດຽວກັນ. ເບິ່ງຂອງພວກເຂົາ
ຄໍາອະທິບາຍຢູ່ເທິງ.
ການສົ່ງອອກ [ຊື່ func]
ສົ່ງເຖິງ fvwm ຄໍານິຍາມຂອງຫນ້າທີ່ທາງລັດທີ່ຊ່ວຍໃນການກະຕຸ້ນທີ່ແຕກຕ່າງກັນ
ການປະຕິບັດຂອງໂມດູນ (ie ການປະເມີນ, load ແລະ ຂະບວນການກ່ອນ).
ຊື່ຟັງຊັນ (ຊື່ func) ອາດຈະຖືກແຍກອອກດ້ວຍເຄື່ອງໝາຍຈຸດ ຫຼື/ແລະ ຊ່ອງຫວ່າງ. ໂດຍຄ່າເລີ່ມຕົ້ນ,
ສອງຫນ້າທີ່ "Eval" ແລະ "." ຄາດວ່າ.
ການກະ ທຳ ຕົວຈິງທີ່ ກຳ ນົດໄວ້ໃນຟັງຊັນແມ່ນຄາດເດົາຈາກຊື່ຟັງຊັນຖ້າເປັນໄປໄດ້,
ບ່ອນທີ່ຟັງຊັນຊື່ "." ແມ່ນສະຫງວນໄວ້ສໍາລັບ ຂະບວນການກ່ອນ ການປະຕິບັດ.
ຕົວຢ່າງ, ຄຳສັ່ງ fvwm ສອງອັນນີ້
SendToModule MyPerl ສົ່ງອອກ PerlEval, PP
FvwmPerl --ສົ່ງອອກ PerlEval, PP MyPerl
ກໍານົດສອງຫນ້າທີ່ທາງລັດຕໍ່ໄປນີ້:
DestroyFunc PerlEval
AddToFunc I SendToModule MyPerl eval $*
DestroyFunc PP
AddToFunc I SendToModule MyPerl preprocess -c -- $*
ເຫຼົ່ານີ້ 4 ການດໍາເນີນການອາດຈະໄດ້ຮັບການຮ້ອງຂໍໃນຫນຶ່ງໃນ 3 ວິທີ: 1) ໃນເສັ້ນຄໍາສັ່ງໃນເວລາທີ່ FvwmPerl ແມ່ນ.
invoked (ໃນກໍລະນີນີ້ FvwmPerl ແມ່ນສັ້ນ, ເວັ້ນເສຍແຕ່ --ຢູ່ or --ສົ່ງອອກ ຍັງໄດ້ຮັບ) 2)
ໂດຍການສົ່ງຂໍ້ຄວາມທີ່ສອດຄ້ອງກັນໃນ fvwm config ໂດຍໃຊ້ SendToModule, 3) ໂດຍການໂທຫາ
ຟັງຊັນ perl ທີ່ສອດຄ້ອງກັນໃນລະຫັດ perl.
FUNCTIONS
ມີຫຼາຍຫນ້າທີ່ລະຫັດ perl ອາດຈະໂທຫາ:
cmd($fvwm_command)
ໃນກໍລະນີຂອງ ການປະເມີນ or load - ສົ່ງຄືນຫາ fvwm a string $fvwm_commandທີ່ຢູ່ ໃນກໍລະນີຂອງ
ຂະບວນການກ່ອນ - ຕື່ມຂໍ້ມູນໃສ່ $fvwm_command ຕໍ່ກັບຜົນຜະລິດຂອງລະຫັດ perl ທີ່ຝັງໄວ້.
do_eval($perl_code)
ຟັງຊັນນີ້ທຽບເທົ່າກັບ ການປະເມີນ ການທໍາງານຂອງສະຕຣິງ $perl_code,
ອະທິບາຍຂ້າງເທິງ.
ໂຫຼດ($filename)
ຟັງຊັນນີ້ທຽບເທົ່າກັບ load ການທໍາງານຂອງໄຟລ໌ $filename, ອະທິບາຍ
ຂ້າງເທິງ.
ຂະບວນການກ່ອນ (@params, ["-ຄ $command"] [$filename])
ຟັງຊັນນີ້ທຽບເທົ່າກັບ ຂະບວນການກ່ອນ ການທໍາງານທີ່ມີພາລາມິເຕີທີ່ໃຫ້
ແລະໄຟລ໌ $filename ທີ່ອະທິບາຍຂ້າງເທິງ.
ສົ່ງອອກ($func_names, [$do_unexport])
ຟັງຊັນນີ້ທຽບເທົ່າກັບ ການສົ່ງອອກ ການທໍາງານຂອງ $func_names ທີ່ມອບໃຫ້,
ອະທິບາຍຂ້າງເທິງ. ອາດຈະ ຍົກເລີກການສົ່ງອອກ ຊື່ຟັງຊັນຖ້າພາລາມິເຕີທີສອງແມ່ນຈິງ.
ຊື່ຟັງຊັນຄວນຖືກແຍກອອກດ້ວຍເຄື່ອງໝາຍຈຸດ ຫຼື/ແລະຍະຫວ່າງ. ຖ້າ $func_names is
ຫວ່າງເປົ່າຫຼັງຈາກນັ້ນເຮັດຫນ້າທີ່ "Eval" ແລະ "." ຄາດວ່າ.
ຢຸດ ()
ສິ້ນສຸດໂມດູນ.
ຂ້າມ()
ຂ້າມສ່ວນທີ່ເຫຼືອຂອງລະຫັດໂທກັບເຫດການ, ie ໂມດູນກັບຄືນເພື່ອຟັງໃຫມ່
ເຫດການໂມດູນ.
ປົດລັອກ()
Unsynchronizes ເຫດການ callback ຈາກ fvwm. ອັນນີ້ອາດຈະເປັນປະໂຫຍດເພື່ອປ້ອງກັນການປິດທ້າຍ,
ie ປົກກະຕິແລ້ວ fvwm ຂ້າໂມດູນທີ່ບໍ່ຕອບສະຫນອງຖ້າຫາກວ່າເຫດການ callback ບໍ່ແມ່ນ
ສຳ ເລັດໃນ ໂມດູນໝົດເວລາ ວິນາທີ. ນີ້ປ້ອງກັນບໍ່ໃຫ້ມັນ.
ຕົວຢ່າງນີ້ເຮັດໃຫ້ FvwmPerl ໂຈະການປະຕິບັດຂອງມັນເປັນເວລາຫນຶ່ງນາທີ:
SendModule FvwmPerl eval unlock(); ນອນ(60)
ຢ່າງໃດກໍ່ຕາມ, ກວດເບິ່ງວ່າບໍ່ມີທາງໃດທີ່ຂໍ້ຄວາມໃຫມ່ຖືກສົ່ງໂດຍ fvwm ໃນຂະນະທີ່ໂມດູນຢູ່
ບໍ່ຫວ່າງ, ແລະ fvwm ຈະຖືກລັອກຢູ່ໃນຂໍ້ຄວາມໃໝ່ນີ້ດົນເກີນໄປ. ເບິ່ງຍັງ ແນກ
ການແກ້ໄຂຖ້າທ່ານຕ້ອງການການດໍາເນີນງານທີ່ຍາວນານ.
ແຍກ ()
Forks ແລະ detaches ສ່ວນທີ່ເຫຼືອຂອງລະຫັດ callback ເຫດການຈາກຂະບວນການຕົ້ນຕໍ. ນີ້ອາດຈະ
ເປັນປະໂຫຍດເພື່ອປ້ອງກັນການຂ້າໂມດູນຖ້າການໂທຫາເຫດການຂອງມັນຄວນຈະໃຊ້ເວລາດົນ
ເພື່ອໃຫ້ສໍາເລັດແລະມັນອາດຈະເຮັດໄດ້ໃນເດັກທີ່ຖືກແຍກ. ເດັກທີ່ຖືກແຍກອອກອາດຈະຍັງຢູ່
ສົ່ງຄໍາສັ່ງໄປຫາ fvwm (ຢ່າອີງໃສ່ມັນ), ແຕ່ບໍ່ໄດ້ຮັບເຫດການແນ່ນອນ, ມັນ
ອອກຈາກທັນທີຫຼັງຈາກການດໍາເນີນການ callback ສໍາເລັດ.
ຖ້າຫາກວ່າທ່ານນໍາໃຊ້ ແຍກ (), ດີກວ່າພຽງແຕ່ສົ່ງຄໍາສັ່ງກັບ fvwm ໃນຂະບວນການດຽວ (ຕົ້ນຕໍຫນຶ່ງຫຼື
the detached one), ການເຮັດຖ້າບໍ່ດັ່ງນັ້ນມັກຈະເຮັດໃຫ້ເກີດຄວາມຂັດແຍ້ງ.
show_message($msg, $title[, $use_stderr_too=1])
ສະແດງປ່ອງຢ້ຽມໂຕ້ຕອບທີ່ມີຂໍ້ຄວາມທີ່ໄດ້ຮັບ, ການນໍາໃຊ້ເຄື່ອງມື X ໃດທີ່ພົບເຫັນຢູ່ໃນ
ລະບົບ.
ເບິ່ງ FVWM::Module::Toolkit::show_message ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.
ຄວາມຮັບຜິດຊອບ
ມີຫຼາຍຕົວແປທົ່ວໂລກຢູ່ໃນ ຕົ້ນຕໍ namespace ທີ່ອາດຈະຖືກນໍາໃຊ້ໃນ perl
ລະຫັດ:
$a, $b, ... $h
@a, @b, ... @h
%a, %b, ... %h
ພວກມັນທັງໝົດຖືກຕັ້ງເບື້ອງຕົ້ນເປັນຄ່າຫວ່າງເປົ່າ ແລະອາດຈະຖືກໃຊ້ເພື່ອເກັບຮັກສາສະຖານະລະຫວ່າງ
ການໂທທີ່ແຕກຕ່າງກັນກັບການກະທໍາ FvwmPerl (ການປະເມີນ ແລະ load).
ຖ້າທ່ານຕ້ອງການຊື່ຕົວແປທີ່ສາມາດອ່ານໄດ້, ໃຫ້ຂຽນວ່າ "ບໍ່ມີ vars" ທີ່ເຄັ່ງຄັດ; ໃນຕອນເລີ່ມຕົ້ນຂອງ
ທຸກໆລະຫັດ perl ຫຼືໃຊ້ hash ສໍາລັບການນີ້, ເຊັ່ນ:
$h{id} = $h{first_name} . " " . $h{second_name}
ຫຼືໃຊ້ຊື່ແພັກເກດ, ເຊັ່ນ:
@MyMenu::terminals = qw(xterm rxvt );
$MyMenu::item_num = @MyMenu::terminals;
ອາດຈະມີທາງເລືອກໃນການຕັ້ງຄ່າເພື່ອເປີດ ແລະປິດຄວາມເຂັ້ມງວດ.
MESSAGES
FvwmPerl ອາດຈະໄດ້ຮັບຂໍ້ຄວາມໂດຍໃຊ້ຄໍາສັ່ງ fvwm SendToModule. ຊື່, ຄວາມຫມາຍແລະ
ຕົວກໍານົດການຂອງຂໍ້ຄວາມແມ່ນຄືກັນກັບການປະຕິບັດທີ່ສອດຄ້ອງກັນ, ອະທິບາຍຂ້າງເທິງ.
ນອກຈາກນັ້ນ, ຂໍ້ຄວາມ ຢຸດ ເຮັດໃຫ້ໂມດູນທີ່ຈະເຊົາ.
ຂໍ້ຄວາມ ຍົກເລີກການສົ່ງອອກ [ຊື່ func] undoes ຜົນກະທົບຂອງ ການສົ່ງອອກ, ອະທິບາຍໄວ້ໃນ ACTIONS
ສ່ວນ.
ຂໍ້ຄວາມ dump dumps ເນື້ອໃນຂອງຕົວແປທີ່ມີການປ່ຽນແປງ (ຍັງບໍ່ທັນ).
ຕົວຢ່າງ
ການທົດສອບງ່າຍດາຍ:
SendToModule FvwmPerl eval $h{dir} = $ENV{HOME}
SendToModule FvwmPerl eval load($h{dir} . "/test.fpl")
SendToModule FvwmPerl ໂຫຼດ $[HOME]/test.fpl
SendToModule FvwmPerl preprocess 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 MyBackgrounds "ຄວາມເປັນມາຂອງຂ້ອຍ" ຫົວຂໍ້
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))])
ໜີ
SendToModule ຄືກັນກັບຄໍາສັ່ງ fvwm ອື່ນໆຂະຫຍາຍຕົວແປຄໍານໍາຫນ້າຫຼາຍໂດລາ.
ນີ້ອາດຈະຂັດແຍ້ງກັບການໃຊ້ເງິນໂດລາ perl. ທ່ານອາດຈະຫຼີກລ້ຽງການນີ້ໂດຍການນໍາຫນ້າ SendToModule
ມີ dash ນໍາ. 2 ເສັ້ນຕໍ່ໄປນີ້ໃນແຕ່ລະຄູ່ແມ່ນທຽບເທົ່າ:
SendToModule FvwmPerl eval $$d = "$[DISPLAY]"
-SendToModule FvwmPerl eval $d = "$ENV{DISPLAY}"
SendToModule FvwmPerl eval \
cmd("Echo desk=$d, display=$$d")
SendToModule FvwmPerl preprocess -c \
Echo desk=%("$d")%, display=%{$$d}%
ການແກ້ໄຂອື່ນເພື່ອຫຼີກເວັ້ນການຫລົບຫນີຂອງສັນຍາລັກພິເສດເຊັ່ນເງິນໂດລາແລະ backslashes ແມ່ນເພື່ອ
ສ້າງໄຟລ໌ perl ໃນ ~/.fvwm ແລະຫຼັງຈາກນັ້ນໂຫຼດມັນ:
SendToModule FvwmPerl ໂຫຼດ build-menus.fpl
ຖ້າທ່ານຕ້ອງການປຸງແຕ່ງຄໍາສັ່ງຫນຶ່ງທີ່ເລີ່ມຕົ້ນດ້ວຍ dash, ທ່ານຄວນນໍາຫນ້າມັນໂດຍໃຊ້
"--".
# ນີ້ພິມໂຕະປະຈຸບັນ, ເຊັ່ນ "0"
SendToModule FvwmPerl preprocess -c Echo "$%{$a = "c"; ++$a}%"
# ອັນນີ້ພິມ "$d"
SendToModule FvwmPerl preprocess -c -- -Echo "$%{"d"}%"
# ອັນນີ້ພິມ "$d" (SendToModule ຂະຫຍາຍ $$ ເປັນ $)
SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"
# ອັນນີ້ພິມ "$$d"
-SendToModule FvwmPerl preprocess -c -- -Echo "$$%{"d"}%"
ອີກເທື່ອ ໜຶ່ງ, ມັນຖືກແນະ ນຳ ໃຫ້ໃສ່ ຄຳ ສັ່ງຂອງທ່ານເຂົ້າໃນແຟ້ມແລະປຸງແຕ່ງເອກະສານແທນ.
ຂໍ້ຄວນລະວັງ
FvwmPerl ຖືກຂຽນໄວ້ໃນ perl ແລະຈັດການກັບ perl, ປະຕິບັດຕາມຄໍາຂວັນຂອງ perl ທີ່ມີຊື່ສຽງ:
"ມີຫຼາຍກວ່າຫນຶ່ງວິທີທີ່ຈະເຮັດ", ດັ່ງນັ້ນທາງເລືອກແມ່ນຂອງເຈົ້າ.
ນີ້ແມ່ນຄູ່ຂອງເສັ້ນທຽບເທົ່າເພີ່ມເຕີມ:
ໂມດູນ FvwmPerl --load "my.fpl" --stay
ໂມດູນ FvwmPerl -e 'load("my.fpl")' -s
SendToModule FvwmPerl preprocess --quote '@' my.ppp
SendToModule FvwmPerl eval preprocess({quote => '@'}, "my.ppp");
ຄໍາເຕືອນ, ທ່ານອາດຈະສົ່ງຜົນກະທົບຕໍ່ວິທີທີ່ FvwmPerl ເຮັດວຽກໂດຍການປະເມີນລະຫັດ perl ທີ່ເຫມາະສົມ, ນີ້
ຖືວ່າເປັນຄຸນສົມບັດທີ່ບໍ່ແມ່ນ bug. ແຕ່ກະລຸນາຢ່າເຮັດແນວນີ້, ຂຽນໂມດູນ fvwm ຂອງທ່ານເອງ
ໃນ perl ແທນ.
ໃຊ້ FvwmPerl ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net