in reply to Re: Removing multiple trailing comment lines from a string
in thread Removing multiple trailing comment lines from a string

Similarly, I don't see the reason to run the same pair of statements three times:
$s =~ s/^;.*\Z//m; chomp $s; $s =~ s/^;.*\Z//m; chomp $s; $s =~ s/^;.*\Z//m; chomp $s;
Once should be enough, no? And I doubt the chomp is useful here.
Again, remember we are dealing with a multi-line string. So running it once removes just the last comment line, not the last three comment lines. Also, please note that the first:
$s =~ s/^;.*\Z//m;
removes the contents of the last comment line of a multi-line string (note that \Z matches just the end of the (multi-line) string, not the end of each line). So if you ran it again without the chomp it would do nothing because you've have already removed the last comment line! The chomp is needed to remove the newline now sitting at the end of the string. An alternative to chomp, suggested above by tye, is to eschew the m modifier and remove the newline as part of the regex, like so:
s/\n;.*\Z//