রুকুতে পার্ল <> এর বিকল্প?


11

এখানে রাকু (neé Perl 6) এর চারপাশে আমার পথ শিখছে, চারপাশে খুব সুন্দর। তবে আমি <>পার্ল 5 থেকে জাদুটি খুব খারাপভাবে মিস করছি , যেখানে আপনি কেবল পারেন:

my $x = <>;
print $x;
while(<>) {
  print join(':', split);
}

(পরবর্তী ইনপুট লাইনটি পড়ুন $x, বাকীগুলির উপর লুপ করুন; কোনও ফাইল না দেওয়া থাকলে ইনপুটটি ইনপুট বা স্ট্যান্ডার্ড ইনপুট হিসাবে দেওয়া ফাইলগুলি থেকে হয়)। "পার্ল 5 থেকে 6" টিউটোরিয়াল / মাইগ্রেশন গাইড / ... কেবলমাত্র slurpপুরো ফাইলটি যুক্ত করার জন্য, বা openনাম অনুসারে পৃথক ফাইলগুলিকে যুক্ত করার বিষয়ে কথা বলুন । কোনও যাদু নেই "নামযুক্ত ফাইলগুলি ক্রমে ক্রমে ইনপুট নিন" আমি খুঁজে পেতে পারি।

আমি আবার ম্যাজিক চাই!

উত্তর:


17

আপনি যে কার্যকারিতাটি সন্ধান করছেন সেটি বহুলাংশে বিদ্যমান। এই লিপি:

my $x = get();
say "First: $x";
for lines() {
    .say
}

এই ইনপুট ফাইলগুলি দেওয়া:

$ cat foo
foo line 1
foo line 2
$ cat bar
bar line 1
bar line 2

উইল, যখন হিসাবে আহবান করা হবে:

raku script.p6 foo bar

আউটপুট উত্পাদন:

First: foo line 1
foo line 2
bar line 1
bar line 2

$*INফাইল না থাকলে এটি থেকে আউটপুটও নেওয়া হবে । একমাত্র জিনিস যা বিদ্যমান নেই তার একক প্রতিস্থাপন <>, যেহেতু এটি নির্ভরযোগ্য wantarrayকার্যকারিতার উপর নির্ভর করবে যা একাধিক প্রেরণের সাথে সামঞ্জস্যপূর্ণ নয় (এবং রাকু একাধিক প্রেরণকে আরও কার্যকর মনে করে)।

শূন্য-প্রার্থী প্রার্থীদের পক্ষে getএবং linesপ্রয়োগ করা হয়$*ARGFILES , একটি ফাইল হ্যান্ডেল যা আর্গুমেন্ট তালিকা থেকে বা থেকে ফাইলগুলি গ্রহণের কার্যকারিতা সরবরাহ করে $*IN- যার অর্থ ফাইল হ্যান্ডেলটি প্রত্যাশা করে এমন কোনও কোডে এটি পাস করতে পারে।


1
বা, পেডেন্টালি: রাকু স্ক্রিপ্ট.রাকু ফু বার। ;-)
p6 ধীরে ধীরে

0

আপনার জন্য যথেষ্ট যাদু?

sub MAIN( Str $file where *.IO.f  )
{
    .say for $file.IO.lines.map: *.comb.join(':');
}

2
এটি দুর্দান্ত, এবং ওপির চেষ্টা করা উচিত, তবে এটি কয়েকটি উপায়ে একই নয়। কীভাবে <>আচরণের অনুকরণ করা যায় তার জন্য জ্যান্তন এর উত্তর দেখুন এবং নোট করুন যে .combকোনও যুক্তি splitছাড়াই রাকুর একটি স্ট্রিংকে পৃথক চরিত্রে বিভক্ত করা হয়েছে, যেখানে পার্কের যুক্তি ছাড়াই .split(/\s+/)রাকুতে আফিক রয়েছে ।
রায়ফ

একটি বিকল্প .splitহতে পারে .words- docs.perl6.org/type/Str#routine_words
donaldh

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