in reply to Any hints on how to do this?
It prints:#!/usr/bin/perl use warnings; use strict; my $str = <<PAIRS; GEORGE 21 GEORGE 45 NICK 12 PETER 27 JIM 18 JIM 87 CHRIS 33 PAIRS my $name =''; $str = join "\n\n", map { sprintf "%-8s %s", ($_->[0] ne $name ? $nam +e = $_->[0] : ''), $_->[1]} map { [split " ", $_, 2] } split /\n+/, $ +str; print $str;
The snippet assumes that the lines containing the same name follow each other. It clears the name only if it is equal to one in previous line.GEORGE 21 45 NICK 12 PETER 27 JIM 18 87 CHRIS 33
|
|---|