#!/usr/bin/perl -w # trim_space.pl - Don Yang (uguu.org) # # Trim leading/trailing white spaces and blank lines. # # 07/05/07 use strict; my @lines = <>; # Trailing whitespaces foreach (@lines) { chomp; s/\s*$//; } # Trailing blank lines while( $#lines >= 0 ) { if( $lines[$#lines] =~ /^$/ ) { pop @lines; } else { last; } } # Leading blank lines while( $#lines >= 0 ) { if( $lines[0] =~ /^$/ ) { shift @lines; } else { last; } } # Leading whitespaces if( $lines[0] =~ /^(\s+)\S/ ) { my $max_leading_space = length($1); foreach (@lines) { next unless /^(\s*)\S/; if( length($1) < $max_leading_space ) { $max_leading_space = length($1); } } for(my $i = 0; $i <= $#lines; $i++) { $lines[$i] = substr($lines[$i], $max_leading_space); } } print "$_\n" foreach @lines;