Hai @Todd. Saya dapat melihat Anda kesal dengan suntingan orang lain, mungkin karena Anda tidak terbiasa dengan cara kerja SO mengenai pengeditan , misalnya mengedit 'terima kasih' . Namun pengeditan Anda sendiri atas pertanyaan Anda sendiri mengecewakan orang lain karena merendahkan waktu / upaya orang-orang yang telah menjawab Anda dan orang lain yang menggunakan SO. Tolong pertimbangkan untuk memberi saya berkah Anda untuk mengembalikan pertanyaan Anda seperti sebelumnya .
use v6;
use Getopt::Long;
my %opt = help => False, 'r=s' => "", 'q=s' => "", 'w=s' => "";
my %options = get-options(%opt).hash;
say %options;
say @*ARGS;
@Todd Semua argumen yang diproses sebagai opsi dihapus dari @*ARGSoleh get-options(). Jadi argumen non-opsi ditinggalkan @*ARGSsetelahnya. Lihat jawaban yang diperbarui
Håkon Hægland
Ini menetapkan helpke nilai default 0. Mungkin lebih baik menggunakan boolean: help => Falsekarena opsi bantuan biasanya digunakan untuk menampilkan pesan bantuan. Saya telah mengedit jawaban sedemikian rupa sehingga helpboolean.
Jawaban:
Berikut adalah contoh menggunakan Getopt :: Long :
Contoh dijalankan:
sumber
@*ARGS
olehget-options()
. Jadi argumen non-opsi ditinggalkan@*ARGS
setelahnya. Lihat jawaban yang diperbaruihelp
ke nilai default 0. Mungkin lebih baik menggunakan boolean:help => False
karena opsi bantuan biasanya digunakan untuk menampilkan pesan bantuan. Saya telah mengedit jawaban sedemikian rupa sehinggahelp
boolean.Gunakan
MAIN
sub :Anda dapat mengetik parameter ini dalam urutan apa pun:
Dan juga akan menangkap parameter tambahan apa pun, menampilkan parameter aktual:
Jika Anda hanya tertarik pada parameter dengan satu tanda hubung, Anda perlu GetOpt :: Long seperti yang ditunjukkan oleh Hakon
sumber