in reply to killlastdot.pl

Since this program removes any trailing dot on lines that contain some particular string, i don't see why you named it ident.pl ... but that's okay. Here is some code that does the same thing as yours, but does so more consisely:
#!/usr/bin/perl use strict; use warnings; my ($file,$var) = @ARGV; die "USAGE: $0 file word\n" unless $file and $var; open GETARG, '<', $file or die "Can't open $file: $!\n"; while (<GETARG>) { s/\.$// if /$var/; print; } close GETARG or die "Couldn't close $file: $!\n";
Also, if you don't mind "hard coding" the word you want to match in the code, this can be trimmed down to a one liner: (remember to replace the double quotes with single quotes if you use Win32)
perl -pe's/\.$// if /word/' file
Perl rules. :)

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

Replies are listed 'Best First'.
Re: (jeffa) Re: ident.pl
by sauoq (Abbot) on Aug 01, 2003 at 03:12 UTC
    Also, if you don't mind "hard coding" the word you want to match in the code, this can be trimmed down to a one liner

    Nevermind "hard coding" it... and on Unix, you might as well replace it with an alias. Here's how I'd do that in my shell (bash):

    alias rmdots="perl -pe 's/\.\$// if /@{[shift]}/'"
    Uh... (test first!) Make that:
    alias rmdots="perl -pe 'BEGIN{\$p=shift}s/\.$// if /\$p/'"
    Usage would be: rmdots pattern file ...

    -sauoq
    "My two cents aren't worth a dime.";
    
Re^2: ident(?).pl
by Aristotle (Chancellor) on Aug 02, 2003 at 20:58 UTC
    perl -pi -e's/(word.*)\.$/$1/' file
    :-)

    Makeshifts last the longest.

Re: (jeffa) Re: ident.pl
by hash (Scribe) on Aug 01, 2003 at 14:24 UTC
    jeffa, your code is much more consisely, becouse it shows error messages if the user try a wrong way to input file and word. But it works for me. Anyway i would call this script as "one-way script" becouse i used killlastdot.pl for an especific usage, that i should remove dots from a text file in SQL.