On Wed, Oct 03, 2007 at 05:23:35AM +0100, Johannes Schindelin wrote: > > > #!/usr/bin/perl > > > > Add -w for warnings, also use strict; > > <dumb>What does "use strict;" imply?</dumb> Try "perldoc strict" for details. > > > if ($par =~ /^\. /s) { > > > my @lines = split(/^\. /m, $par); > > > shift @lines; > > > $conv->enumeration(\@lines); > > > } elsif ($par =~ /^\* /s) { > > > > uncuddle your elsif's; > > I'm sorry... What do you mean? I think he means reformatting to if (condition) { } elsif (condition) { } > > $result = ( $par =~ /^\. /s ? $conv->do_enum($par) : > > $par =~ /^\[verse\]/ ? $conv->do_verse($par) : > > ... ) > > I do not like that way... is it Perl standard to code like that? It's quite common if you have a dispatch function, but obviously not required. > > > $title =~ s/\(\d+\)$//; > > > print '.\" Title: ' . $title > > > . '.\" Author: ' . "\n" > > > . '.\" Generator: ' . $self->{generator} . "\n" > > > . '.\" Date: ' . $self->{date} . "\n" > > > . '.\" Manual: ' . $self->{manual} . "\n" > > > . '.\" Source: ' . $self->{git_version} . "\n" > > > . '.\"' . "\n"; > > > } > > > > I'd consider a HERE-doc, or multi-line qq{ } more readable than this. > > Can you give me an example of a HERE-doc? (What I tried to avoid is > having ugly indentation-breaking tlobs.) print <<EOF; foo EOF HERE-docs necessarily break indentation unless you strip it out manually (which is inefficient and ugly). But two things that might make that look better are using qq// (to avoid having to escape quotes) and interpolating the variables: . qq/." Generator: $self->{generator}\n/ > I'll try to find something about qq{} in the docs. It's in perlop, but it's basically a fancy way of double-quoting, except that you get to choose the delimiter. > > > $text =~ s/([^\n]) *\n([^\n])/\1 \2/g; > > > > "." is the same as [^\n] (without the 's' modifier). > > But I need the (implicit) 's' modifier, otherwise the "\n" in the middle > is not interpreted correctly. This regsub is meant to unwrap the > paragraph and put it into a very long line (but leaving \n\n alone). I think you might be confused about how the 's' modifier works. You are not using it, so '.' is the same as '[^\n]'. Perl will always match a newline if it's in your regex. If you specify 'm', then it will also allow '^' and '$' to match at line boundaries (instead of just at the beginning and end of the string). -Peff - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html