fork download
  1.  
  2. my @all = [.words for q:to/EOF/.lines];
  3. master g y9_5 5
  4. slave g y9_6 6
  5. master g y5_1 1
  6. slave g y5_2 2
  7. slave g y5_3 3
  8. EOF
  9. my %all = @all.classify({ .[0] });
  10.  
  11. for @(%all<master>) {
  12. my $y = (.[2] ~~ /^y(\d+)/).[0].Str;
  13. my @slave = %all<slave>.grep({ .[2] ~~ /^y"$y"/ });
  14. print [ .[0], .[1].uc, | .[2..*-2] ].join(" "), " ";
  15. say @(@slave>>.[3]).join(" ");
  16. say .[0..*-2].join(" ") for @slave;
  17. }
Success #stdin #stdout 0.15s 110592KB
stdin
Standard input is empty
stdout
master G y9_5 6
slave g y9_6
master G y5_1 2 3
slave g y5_2
slave g y5_3