Raku kurss / Objekti, ievade/izvade un izņēmumi / Ievade un izvade / Ārējo programmu palaišana 🆕 / Exercises / Nododiet mainīgo bērnprocesam
Risinājums: Nododiet mainīgo bērnprocesam
Šeit ir iespējams risinājums uzdevumam.
Kods
my $file = 'notes.txt';
spurt $file, "one\ntwo\nthree\n";
%*ENV<NOTES> = $file;
my $proc = shell 'wc -l < "$NOTES"', :out;
say $proc.out.slurp(:close).trim;
unlink $file;🦋 Atrodiet programmu failā read-env.raku.
Izvade
3Komentāri
spurtizveidonotes.txtar trim rindām. Uzstādot%*ENV<NOTES>uz tā nosaukumu, faila nosaukums nonāk vidē, ko mantos jebkura bērnprogramma.Komanda
shellšo vidi manto, izvērš$NOTESparnotes.txtun padod failuwc -l, kas saskaita tā rindas. Novirzīšana< "$NOTES"patur izvadē tikai skaitli3, ko noķeram ar:outun apgriežam artrim.Visbeidzot sakopšana tiek izdarīta atpakaļ Raku pusē ar
unlink— čaula nav vajadzīga. Faila dzēšana ir parasta failu sistēmas darbība, tāpēc nav iemesla tās dēļ palaist vēl vienu procesu.