#!perl use strict; use warnings; use feature qw( say ); use English; my $line = 'boy boy girl boy girl boy girl girl'; say $line; my $match_pattern = qr/\bboy\b/; my $replacement_string = 'man'; my $total_matches = () = $line =~ m/$match_pattern/g; # Generate a random number from 1 to $total_matches... my $random_number = int(rand($total_matches)) + 1; my $match_number = 1; $line =~ s{ $match_pattern }{ $match_number++ == $random_number ? $replacement_string : $MATCH; }gex; say $line; exit 0;