পার্ল 6: আমি কমান্ড লাইন থেকে মিশ্র পরামিতিগুলি কীভাবে পড়ব?


9

সেন্সরশিপ / সম্পাদনার বিষয়ে আমার পরামর্শ নেওয়া হয়নি বলে আমি পোস্টটি মুছে ফেলছি।



হাই @ টড আমি দেখতে পাচ্ছি যে আপনি অন্যের সম্পাদনা দ্বারা বিচলিত হয়েছিলেন, সম্ভবতঃ কারণ আপনি কীভাবে সম্পাদনা সম্পর্কে কাজ করেন তার সাথে পরিচিত নন , উদাহরণস্বরূপ 'ধন্যবাদ' সম্পাদনা করা । তবে আপনার নিজের প্রশ্নের নিজের সম্পাদনাটি অন্যদের কাছে নিজেই বিরক্তিকর কারণ এটি আপনাকে এবং যারা এসও ব্যবহার করে তাদের উত্তর দিয়েছিল তাদের সময় / প্রয়াসকে অবমূল্যায়ন করে। আপনার প্রশ্নটি যেমন ছিল তেমন পুনরায় প্রতিষ্ঠিত করতে দয়া করে আমাকে আপনার আশীর্বাদ দেওয়ার কথা বিবেচনা করুন ।
রায়ফ

উত্তর:


9

এখানে getopt :: লং ব্যবহার করে একটি উদাহরণ দেওয়া হল :

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;

উদাহরণ রান:

$ p.p6  -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]

@ টিড্ড সমস্ত আর্গুমেন্ট যা বিকল্প হিসাবে প্রক্রিয়া করা হয় সেগুলি থেকে সরানো @*ARGSহয় get-options()। সুতরাং অ-বিকল্পের যুক্তিগুলি @*ARGSপরে ছেড়ে যায়। আপডেট হওয়া উত্তরটি দেখুন
হাকন হাগল্যান্ড

এটি help0 এর একটি ডিফল্ট মান সেট করে a সম্ভবত বুলিয়ান ব্যবহার করা আরও ভাল হবে: help => Falseযেহেতু সহায়তা বিকল্পটি সাধারণত কোনও সহায়তা বার্তা দেখানোর জন্য ব্যবহৃত হয়। আমি উত্তরটি এমনভাবে সম্পাদন করেছি যে helpএটি একটি বুলিয়ান।
হ্যাকন হাগল্যান্ড্যান্ড

8

MAINসাব ব্যবহার করুন :

#!/usr/bin/env raku

use v6;

sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
    say "$these $are $params";
}

আপনি যে কোনও ক্রমে এই পরামিতিগুলি টাইপ করতে পারেন:

./command-line.p6 --are=well --these=those
those well Params

এবং প্রকৃত প্যারামিটারগুলি দেখিয়ে কোনও অতিরিক্ত প্যারামিটারও ধরবে:

./command-line.p6 --are=well --these=those --not=this_one
Usage:
  ./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]

আপনি যদি কেবলমাত্র একক ড্যাশ সহ প্যারামিটারে আগ্রহী হন, আপনার হ্যাকন দ্বারা নির্দেশিত হিসাবে গেটঅ্যাপ :: লং দরকার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.