ນີ້ແມ່ນຄໍາສັ່ງ perlstyle ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
perlstyle - ຄູ່ມືແບບ Perl
ລາຍລະອຽດ
ຜູ້ຂຽນໂປລແກລມແຕ່ລະຄົນ, ແນ່ນອນ, ຈະມີຄວາມມັກຂອງຕົນເອງກ່ຽວກັບການຈັດຮູບແບບ,
ແຕ່ມີບາງຄໍາແນະນໍາທົ່ວໄປທີ່ຈະເຮັດໃຫ້ບັນດາໂຄງການຂອງທ່ານງ່າຍຕໍ່ການອ່ານ,
ເຂົ້າໃຈ, ແລະຮັກສາ.
ສິ່ງທີ່ສໍາຄັນທີ່ສຸດແມ່ນການດໍາເນີນການໂຄງການຂອງທ່ານພາຍໃຕ້ການ -w ທຸງຢູ່ຕະຫຼອດເວລາ. ເຈົ້າອາດຈະ
ປິດມັນຢ່າງຈະແຈ້ງສໍາລັບບາງສ່ວນຂອງລະຫັດໂດຍຜ່ານ "ບໍ່ມີຄໍາເຕືອນ" pragma ຫຼື
ຕົວແປ $^W ຖ້າເຈົ້າຕ້ອງ. ທ່ານກໍ່ຄວນດໍາເນີນການພາຍໃຕ້ "ໃຊ້ຢ່າງເຄັ່ງຄັດ" ຫຼືຮູ້
ເຫດຜົນວ່າເປັນຫຍັງບໍ່. ການ "ໃຊ້ sigtrap" ແລະແມ້ກະທັ້ງ "ໃຊ້ການວິນິດໄສ" pragmas ອາດຈະພິສູດໄດ້
ເປັນປະໂຫຍດ.
ກ່ຽວກັບຄວາມງາມຂອງລະຫັດວາງອອກ, ກ່ຽວກັບສິ່ງດຽວທີ່ Larry ເອົາໃຈໃສ່ຢ່າງແຂງແຮງແມ່ນ
ວ່າວົງເລັບປິດຂອງ BLOCK ຫຼາຍແຖວຄວນສອດຄ່ອງກັບຄໍາສໍາຄັນທີ່
ໄດ້ເລີ່ມຕົ້ນການກໍ່ສ້າງ. ນອກເຫນືອຈາກນັ້ນ, ລາວມີຄວາມມັກອື່ນໆທີ່ບໍ່ແຂງແຮງ:
· ຫຍໍ້ໜ້າ 4 ຖັນ.
· ການເປີດ curly ໃນເສັ້ນດຽວກັນກັບຄໍາສໍາຄັນ, ຖ້າເປັນໄປໄດ້, ຖ້າບໍ່ດັ່ງນັ້ນ line up.
· ຊ່ອງຫວ່າງກ່ອນການເປີດ curly ຂອງ BLOCK ຫຼາຍເສັ້ນ.
· BLOCK ເສັ້ນດຽວອາດຈະຖືກໃສ່ຢູ່ໃນເສັ້ນຫນຶ່ງ, ລວມທັງ curlies.
· ບໍ່ມີຊ່ອງຫວ່າງກ່ອນເຄື່ອງໝາຍຈຸດ.
· ເຄື່ອງໝາຍເຄິ່ງຖືກລະເວັ້ນໃນ "ສັ້ນ" ແຖວໜຶ່ງ BLOCK.
· ພື້ນທີ່ອ້ອມຮອບຕົວປະຕິບັດການສ່ວນໃຫຍ່.
· ຊ່ອງຫວ່າງຕົວໜັງສືຍ່ອຍ "ຊັບຊ້ອນ" (ໃນວົງເລັບ).
· ເສັ້ນຫວ່າງລະຫວ່າງຕ່ອນທີ່ເຮັດສິ່ງຕ່າງໆແຕກຕ່າງກັນ.
· ຄົນອື່ນທີ່ບໍ່ໄດ້ກອດ.
· ບໍ່ມີຊ່ອງຫວ່າງລະຫວ່າງຊື່ຟັງຊັນ ແລະວົງເລັບເປີດຂອງມັນ.
· ຍະຫວ່າງຫຼັງຈາກແຕ່ລະເຄື່ອງໝາຍຈຸດ.
· ສາຍຍາວແຕກຫຼັງຈາກຕົວປະຕິບັດການ (ຍົກເວັ້ນ "ແລະ" ແລະ "ຫຼື").
· Space ຫຼັງຈາກວົງເລັບສຸດທ້າຍກົງກັນໃນເສັ້ນປະຈຸບັນ.
· ຈັດແຖວລາຍການທີ່ສອດຄ້ອງກັນໃນແນວຕັ້ງ.
· ຍົກເລີກການໃຊ້ເຄື່ອງໝາຍວັກຕອນທີ່ຊ້ຳຊ້ອນຕາບໃດທີ່ຄວາມຊັດເຈນບໍ່ໄດ້ທົນທຸກ.
Larry ມີເຫດຜົນຂອງລາວສໍາລັບແຕ່ລະສິ່ງເຫຼົ່ານີ້, ແຕ່ລາວບໍ່ໄດ້ອ້າງວ່າຄົນອື່ນ
ຈິດໃຈເຮັດວຽກຄືກັນກັບລາວ.
ນີ້ແມ່ນບາງບັນຫາຮູບແບບທີ່ສຳຄັນອື່ນໆທີ່ຄວນຄິດກ່ຽວກັບ:
· ພຽງແຕ່ຍ້ອນວ່າທ່ານ CAN ເຮັດບາງສິ່ງບາງຢ່າງໃນວິທີການສະເພາະໃດຫນຶ່ງບໍ່ໄດ້ຫມາຍຄວາມວ່າທ່ານ SHOULD ເຮັດເລີຍ
ທາງນັ້ນ. Perl ຖືກອອກແບບມາເພື່ອໃຫ້ທ່ານມີຫຼາຍວິທີທີ່ຈະເຮັດຫຍັງ, ສະນັ້ນພິຈາລະນາ
ເລືອກອັນທີ່ອ່ານໄດ້ຫຼາຍທີ່ສຸດ. ຕົວຢ່າງ
ເປີດ(FOO,$foo) || die "ບໍ່ສາມາດເປີດ $foo: $!";
ແມ່ນດີກ່ວາ
die "ບໍ່ສາມາດເປີດ $foo: $!" ເວັ້ນເສຍແຕ່ເປີດ(FOO,$foo);
ເນື່ອງຈາກວ່າວິທີການທີສອງເຊື່ອງຈຸດຕົ້ນຕໍຂອງຄໍາຖະແຫຼງທີ່ຢູ່ໃນຕົວດັດແປງ. ສຸດ
ມືອື່ນ
ພິມ "ເລີ່ມຕົ້ນການວິເຄາະ\n" ຖ້າ $verbose;
ແມ່ນດີກ່ວາ
$verbose && ພິມ "ເລີ່ມຕົ້ນການວິເຄາະ\n";
ເນື່ອງຈາກວ່າຈຸດຕົ້ນຕໍບໍ່ແມ່ນວ່າຜູ້ໃຊ້ພິມ -v ຫຼືບໍ່.
ເຊັ່ນດຽວກັນ, ພຽງແຕ່ຍ້ອນວ່າຕົວປະຕິບັດການຊ່ວຍໃຫ້ທ່ານສົມມຸດວ່າການໂຕ້ຖຽງເລີ່ມຕົ້ນບໍ່ໄດ້ຫມາຍຄວາມວ່າ
ທີ່ທ່ານຕ້ອງເຮັດໃຫ້ການນໍາໃຊ້ຂອງມາດຕະຖານ. ຄ່າເລີ່ມຕົ້ນແມ່ນຢູ່ທີ່ນັ້ນສໍາລັບລະບົບຂີ້ກຽດ
ຜູ້ຂຽນໂປລແກລມຂຽນໂປຼແກຼມຫນຶ່ງຄັ້ງ. ຖ້າຫາກວ່າທ່ານຕ້ອງການໂຄງການຂອງທ່ານສາມາດອ່ານໄດ້,
ພິຈາລະນາການສະຫນອງການໂຕ້ຖຽງ.
ຕາມສາຍດຽວກັນ, ພຽງແຕ່ຍ້ອນວ່າທ່ານ CAN omit ວົງເລັບໃນຫຼາຍບ່ອນບໍ່ໄດ້
ຫມາຍຄວາມວ່າທ່ານຄວນ:
return print reverse sort num values %array;
return print(reverse(sort num(values(%array))));
ເມື່ອສົງໃສ, ໃຫ້ຂະຫຍາຍວົງເລັບ. ຢ່າງຫນ້ອຍມັນຈະປ່ອຍໃຫ້ schmuck ບໍ່ດີບາງ bounce
ຢູ່ໃນປຸ່ມ % ໃນ vi.
ເຖິງແມ່ນວ່າທ່ານຈະບໍ່ຢູ່ໃນຄວາມສົງໃສ, ພິຈາລະນາສະຫວັດດີການທາງຈິດໃຈຂອງບຸກຄົນທີ່ຕ້ອງ
ຮັກສາລະຫັດຫຼັງຈາກທ່ານ, ແລະຜູ້ທີ່ອາດຈະວາງວົງເລັບຢູ່ໃນບ່ອນທີ່ບໍ່ຖືກຕ້ອງ.
· ຢ່າໄປໂດຍຜ່ານ contortions silly ເພື່ອອອກຈາກ loop ຢູ່ເທິງຫຼືລຸ່ມ, ໃນເວລາທີ່ Perl
ສະຫນອງຕົວປະຕິບັດການ "ສຸດທ້າຍ" ເພື່ອໃຫ້ທ່ານສາມາດອອກຈາກກາງ. ພຽງແຕ່ "outdent" ມັນເປັນ
ພຽງເລັກນ້ອຍເພື່ອເຮັດໃຫ້ມັນສັງເກດຫຼາຍ:
ເສັ້ນ:
ສໍາລັບ (;;) {
ຖະແຫຼງການ;
ເສັ້ນສຸດທ້າຍຖ້າ $foo;
ແຖວຕໍ່ໄປຖ້າ /^#/;
ຖະແຫຼງການ;
}
· ຢ່າຢ້ານທີ່ຈະໃຊ້ປ້າຍວົງກົມ - ພວກມັນຢູ່ທີ່ນັ້ນເພື່ອເພີ່ມຄວາມສາມາດໃນການອ່ານເຊັ່ນດຽວກັນກັບ
ອະນຸຍາດໃຫ້ແບ່ງ loop ຫຼາຍລະດັບ. ເບິ່ງຕົວຢ່າງທີ່ຜ່ານມາ.
· ຫຼີກເວັ້ນການໃຊ້ "grep()" (ຫຼື "map()") ຫຼື 'backticks' ໃນສະພາບທີ່ເປັນໂມຄະ, ນັ້ນແມ່ນ, ເມື່ອທ່ານ
ພຽງແຕ່ຖິ້ມມູນຄ່າກັບຄືນຂອງພວກເຂົາ. ຟັງຊັນເຫຼົ່ານັ້ນລ້ວນແຕ່ມີຄ່າກັບຄືນ, ສະນັ້ນໃຫ້ໃຊ້
ເຂົາເຈົ້າ. ຖ້າບໍ່ດັ່ງນັ້ນໃຊ້ "foreach()" loop ຫຼືຟັງຊັນ "system()" ແທນ.
·ສໍາລັບການເຄື່ອນໄຫວ, ໃນເວລາທີ່ການນໍາໃຊ້ຄຸນສົມບັດທີ່ອາດຈະບໍ່ໄດ້ຮັບການປະຕິບັດໃນທຸກເຄື່ອງຈັກ,
ທົດສອບການກໍ່ສ້າງໃນ evaal ເພື່ອເບິ່ງວ່າມັນລົ້ມເຫລວ. ຖ້າເຈົ້າຮູ້ວ່າລຸ້ນໃດ ຫຼື
patchlevel ຄຸນນະສົມບັດສະເພາະໃດຫນຶ່ງໄດ້ຖືກປະຕິບັດ, ທ່ານສາມາດທົດສອບ $] ($PERL_VERSION ໃນ
"ພາສາອັງກິດ") ເພື່ອເບິ່ງວ່າມັນຈະຢູ່ທີ່ນັ້ນ. ໂມດູນ "Config" ຍັງຈະຊ່ວຍໃຫ້ທ່ານ
ຄ່າ interrogate ກໍານົດໂດຍ ກໍາຫນົດຄ່າ ໂຄງການໃນເວລາທີ່ Perl ຖືກຕິດຕັ້ງ.
·ເລືອກຕົວລະບຸ mnemonic. ຖ້າທ່ານບໍ່ສາມາດຈື່ຈໍາສິ່ງທີ່ mnemonic ຫມາຍຄວາມວ່າ, ທ່ານໄດ້ຮັບ
ບັນຫາ.
· ໃນຂະນະທີ່ຕົວລະບຸສັ້ນເຊັ່ນ $gotit ອາດຈະດີ, ໃຫ້ໃຊ້ຂີດກ້ອງເພື່ອແຍກຄຳສັບຕ່າງໆ
ໃນຕົວລະບຸທີ່ຍາວກວ່າ. ໂດຍທົ່ວໄປແລ້ວມັນງ່າຍກວ່າທີ່ຈະອ່ານ $var_names_like_this
$VarNamesLikeThis, ໂດຍສະເພາະສຳລັບຜູ້ທີ່ບໍ່ໄດ້ເວົ້າພາສາອັງກິດ. ມັນຍັງງ່າຍດາຍ
ກົດທີ່ເຮັດວຽກສອດຄ່ອງກັນກັບ "VAR_NAMES_LIKE_THIS".
ບາງຄັ້ງຊື່ແພັກເກດແມ່ນເປັນຂໍ້ຍົກເວັ້ນຕໍ່ກັບກົດລະບຽບນີ້. Perl ສະຫງວນບໍ່ເປັນທາງການ
ຊື່ໂມດູນຕົວພິມນ້ອຍສໍາລັບໂມດູນ "pragma" ເຊັ່ນ "ຈໍານວນເຕັມ" ແລະ "ເຄັ່ງຄັດ". ອື່ນໆ
ໂມດູນຄວນເລີ່ມຕົ້ນດ້ວຍຕົວພິມໃຫຍ່ແລະໃຊ້ກໍລະນີປະສົມ, ແຕ່ອາດຈະເປັນບໍ່ມີ
ຂີດກ້ອງເນື່ອງຈາກຂໍ້ຈຳກັດໃນລະບົບໄຟລ໌ເບື້ອງຕົ້ນຂອງໂມດູນ
ຊື່ເປັນໄຟລ໌ທີ່ຕ້ອງພໍດີກັບ sparse bytes ບໍ່ຫຼາຍປານໃດ.
· ເຈົ້າອາດພົບວ່າມັນເປັນປະໂຫຍດທີ່ຈະໃຊ້ຕົວໜັງສືເພື່ອຊີ້ບອກຂອບເຂດ ຫຼືລັກສະນະຂອງກ
ຕົວແປ. ຍົກຕົວຢ່າງ:
$ALL_CAPS_HERE ຄົງທີ່ເທົ່ານັ້ນ (ລະວັງການປະທະກັນກັບ perl vars!)
$Some_Caps_Here ແພັກເກດທົ່ວໂລກ/ຄົງທີ່
$no_caps_here function scope my() ຫຼື local() variables
ຊື່ຟັງຊັນ ແລະວິທີການເບິ່ງຄືວ່າຈະເຮັດວຽກດີທີ່ສຸດເປັນຕົວພິມນ້ອຍທັງໝົດ. ຕົວຢ່າງ:
"$obj->as_string()".
ທ່ານສາມາດນໍາໃຊ້ເຄື່ອງຫມາຍ underscore ເພື່ອຊີ້ບອກວ່າຕົວປ່ຽນແປງຫຼືຫນ້າທີ່ບໍ່ຄວນຈະເປັນ
ໃຊ້ຢູ່ນອກຊຸດທີ່ກໍານົດມັນ.
· ຖ້າເຈົ້າມີເສັ້ນຜົມປົກກະຕິ, ໃຫ້ໃຊ້ຕົວແກ້ໄຂ "/x" ແລະໃສ່ບາງອັນ
ຊ່ອງຫວ່າງເພື່ອເຮັດໃຫ້ມັນເບິ່ງໜ້ອຍລົງຄືກັບສຽງແຖວ. ຢ່າໃຊ້ຕົວຫຍໍ້ເປັນ a
ຕົວຂັ້ນເມື່ອ regexp ຂອງທ່ານມີ slashes ຫຼື backslashes.
·ໃຊ້ຕົວປະຕິບັດການ "ແລະ" ແລະ "ຫຼື" ໃຫມ່ເພື່ອຫຼີກເວັ້ນການມີວົງເລັບຂອງຕົວປະຕິບັດການ
ຫຼາຍ, ແລະເພື່ອຫຼຸດຜ່ອນການເກີດຂອງຕົວປະຕິບັດການເຄື່ອງໝາຍວັກຕອນເຊັ່ນ "&&" ແລະ "||". ໂທ
subroutines ຂອງທ່ານເປັນຖ້າຫາກວ່າພວກເຂົາເຈົ້າເປັນຫນ້າທີ່ຫຼືບັນຊີລາຍການປະຕິບັດການເພື່ອຫຼີກເວັ້ນການຫຼາຍເກີນໄປ
ampersands ແລະວົງເລັບ.
· ໃຊ້ເອກະສານຢູ່ທີ່ນີ້ແທນຄຳຖະແຫຼງ "ພິມ()" ຊ້ຳໆ.
· ຈັດລຽງສິ່ງຂອງທີ່ສອດຄ້ອງກັນໃນແນວຕັ້ງ, ໂດຍສະເພາະຖ້າມັນຍາວເກີນໄປທີ່ຈະພໍດີກັບອັນໜຶ່ງ
ແນວໃດກໍ່ຕາມ.
$IDX = $ST_MTIME;
$IDX = $ST_ATIME ຖ້າ $opt_u;
$IDX = $ST_CTIME ຖ້າ $opt_c;
$IDX = $ST_SIZE ຖ້າ $opt_s;
mkdir $tmpdir, 0700 ຫຼືຕາຍ "ບໍ່ສາມາດ mkdir $tmpdir: $!";
chdir($tmpdir) ຫຼືຕາຍ "ບໍ່ສາມາດ chdir $tmpdir: $!";
mkdir 'tmp', 0777 ຫຼືຕາຍ "ບໍ່ສາມາດ mkdir $tmpdir/tmp: $!";
· ກວດເບິ່ງລະຫັດກັບຄືນຂອງການໂທລະບົບສະເໝີ. ຂໍ້ຄວາມຜິດພາດທີ່ດີຄວນໄປຫາ
"STDERR", ລວມທັງໂຄງການໃດທີ່ເຮັດໃຫ້ເກີດບັນຫາ, ສິ່ງທີ່ລະບົບລົ້ມເຫລວໂທຫາແລະ
ການໂຕ້ຖຽງແມ່ນ, ແລະ (ສໍາຄັນຫຼາຍ) ຄວນມີຂໍ້ຄວາມຄວາມຜິດພາດຂອງລະບົບມາດຕະຖານ
ສໍາລັບສິ່ງທີ່ຜິດພາດ. ນີ້ແມ່ນຕົວຢ່າງທີ່ງ່າຍດາຍແຕ່ພຽງພໍ:
opendir(D, $dir) ຫຼືຕາຍ "ບໍ່ສາມາດ opendir $dir: $!";
· ວາງສາຍຕົວແປຂອງເຈົ້າເມື່ອມັນມີຄວາມໝາຍ:
tr [abc]
[xyz];
·ຄິດກ່ຽວກັບການນໍາໃຊ້ຄືນໃຫມ່. ເປັນຫຍັງຈຶ່ງເສຍພະລັງທາງສະໝອງໃນການສັກເທື່ອດຽວໃນເວລາທີ່ເຈົ້າອາດຢາກເຮັດ
ບາງສິ່ງບາງຢ່າງຄືມັນອີກເທື່ອຫນຶ່ງ? ພິຈາລະນາໂດຍທົ່ວໄປລະຫັດຂອງທ່ານ. ພິຈາລະນາຂຽນໂມດູນ
ຫຼືຫ້ອງຮຽນວັດຖຸ. ພິຈາລະນາເຮັດໃຫ້ລະຫັດຂອງທ່ານດໍາເນີນການຢ່າງສະອາດດ້ວຍ "ໃຊ້ຢ່າງເຂັ້ມງວດ" ແລະ "ໃຊ້
ຄໍາເຕືອນ" (ຫຼື -w) ມີຜົນກະທົບ. ພິຈາລະນາໃຫ້ລະຫັດຂອງເຈົ້າ. ພິຈາລະນາການປ່ຽນແປງຂອງທ່ານ
ທັດສະນະຂອງໂລກທັງຫມົດ. ພິຈາລະນາ ... ໂອ້, ບໍ່ຄິດ.
·ພະຍາຍາມບັນທຶກລະຫັດຂອງທ່ານແລະໃຊ້ການຈັດຮູບແບບ Pod ໃນທາງທີ່ສອດຄ່ອງ. ນີ້ແມ່ນ
ສົນທິສັນຍາທີ່ຄາດໄວ້ທົ່ວໄປ:
· ໃຊ້ "C<>" ສໍາລັບຟັງຊັນ, ຕົວແປ ແລະຊື່ໂມດູນ (ແລະຫຼາຍກວ່ານັ້ນໂດຍທົ່ວໄປແລ້ວ
ທີ່ສາມາດພິຈາລະນາເປັນສ່ວນຫນຶ່ງຂອງລະຫັດ, ເຊັ່ນ filehandles ຫຼືຄ່າສະເພາະ). ຫມາຍເຫດ
ຊື່ຟັງຊັນນັ້ນຖືວ່າສາມາດອ່ານໄດ້ຫຼາຍກວ່າກັບວົງເລັບຫຼັງຈາກພວກມັນ
ຊື່, ນັ້ນແມ່ນ "function()".
· ໃຊ້ "B<>" ສໍາລັບຊື່ຄໍາສັ່ງເຊັ່ນ cat or grep.
· ໃຊ້ "F<>" ຫຼື "C<>" ສໍາລັບຊື່ໄຟລ໌. "F<>" ຄວນເປັນລະຫັດ Pod ເທົ່ານັ້ນສຳລັບໄຟລ໌
ຊື່, ແຕ່ເປັນຮູບແບບ Pod ສ່ວນໃຫຍ່ເຮັດໃຫ້ມັນເປັນຕົວອຽງ, Unix ແລະເສັ້ນທາງ Windows ກັບ
ຂີດແລະ backslashes ຂອງເຂົາເຈົ້າອາດຈະອ່ານໄດ້ຫນ້ອຍ, ແລະ rendered ດີກວ່າ
"C<>".
· ສອດຄ່ອງ.
· ເປັນຄົນດີ.
ໃຊ້ perlstyle ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net