Blame


1 ffd9a51f 2023-08-04 jrmu #!/usr/bin/perl
2 ffd9a51f 2023-08-04 jrmu ## Copyright (C) 2023 by jrmu <jrmu@ircnow.org>
3 ffd9a51f 2023-08-04 jrmu ##
4 ffd9a51f 2023-08-04 jrmu ## Permission is granted to use, copy, modify, and/or distribute
5 ffd9a51f 2023-08-04 jrmu ## this work for any purpose with or without fee. This work is
6 ffd9a51f 2023-08-04 jrmu ## offered as-is, with absolutely no warranty whatsoever. The
7 ffd9a51f 2023-08-04 jrmu ## author is not responsible for any damages that result from
8 ffd9a51f 2023-08-04 jrmu ## using this work.
9 ffd9a51f 2023-08-04 jrmu
10 ffd9a51f 2023-08-04 jrmu # Modify the previous program to change every Fred to Wilma and
11 ffd9a51f 2023-08-04 jrmu # every Wilma to Fred. Now input like fred&wilma should look like
12 ffd9a51f 2023-08-04 jrmu # Wilma&Fred in the output.
13 ffd9a51f 2023-08-04 jrmu
14 ffd9a51f 2023-08-04 jrmu use warnings;
15 ffd9a51f 2023-08-04 jrmu use strict;
16 ffd9a51f 2023-08-04 jrmu use utf8;
17 ffd9a51f 2023-08-04 jrmu
18 ffd9a51f 2023-08-04 jrmu if (scalar(@ARGV) != 1) {
19 ffd9a51f 2023-08-04 jrmu die "Usage: $0 filename";
20 ffd9a51f 2023-08-04 jrmu }
21 ffd9a51f 2023-08-04 jrmu my $filepath = ($ARGV[0] =~ s/.[^.]*\z/.out/r);
22 ffd9a51f 2023-08-04 jrmu open my $fh, ">", $filepath or die "Unable to write to '$filepath': $!";
23 ffd9a51f 2023-08-04 jrmu
24 ffd9a51f 2023-08-04 jrmu while (<>) {
25 ffd9a51f 2023-08-04 jrmu chomp;
26 ffd9a51f 2023-08-04 jrmu s/Fred/\n/ig;
27 ffd9a51f 2023-08-04 jrmu s/Wilma/Fred/mig;
28 ffd9a51f 2023-08-04 jrmu s/\n/Wilma/mig;
29 ffd9a51f 2023-08-04 jrmu print $fh "$_\n";
30 ffd9a51f 2023-08-04 jrmu }