http://qs321.pair.com?node_id=1092974


in reply to sprintf("%ss", ...)

Here's one way:

my $message = sprintf('%d %s been loaded', $v, $v == 1 ? 'volume h +as' : 'volumes have')

Here's a demonstration:

C:\>perl -E "say sprintf('%d %s been loaded', $_, $_ == 1 ? 'volume ha +s' : 'volumes have') for 0 .. 9" 0 volumes have been loaded 1 volume has been loaded 2 volumes have been loaded 3 volumes have been loaded 4 volumes have been loaded 5 volumes have been loaded 6 volumes have been loaded 7 volumes have been loaded 8 volumes have been loaded 9 volumes have been loaded C:\>

Alternatively (simpler):

my $message = sprintf 'Volumes loaded: %d', $v;