web-dev-qa-db-fra.com

Quelle est la bonne façon de diviser une ligne de code Perl en deux?

$ cat temp.pl
use strict;
use warnings;

print "1\n";
print "hello, world\n";

print "2\n";
print "hello,
world\n";

print "3\n";
print "hello, \
world\n";

$ Perl temp.pl
1
hello, world
2
hello,
world
3
hello, 
world
$

Pour rendre mon code facilement lisible, je souhaite limiter le nombre de colonnes à 80 caractères. Comment puis-je casser une ligne de code en deux sans aucun effet secondaire?

Comme indiqué ci-dessus, un simple  ou \ ne marche pas.

Quelle est la bonne façon de procéder?

27
Lazer

En Perl, un retour de chariot servira dans n'importe quel endroit où un espace régulier le fait. Les barres obliques inverses ne sont pas utilisées comme dans certaines langues; il suffit d'ajouter un CR.

Vous pouvez fractionner des chaînes sur plusieurs lignes avec des opérations de concaténation ou de liste:

print "this is ",
    "one line when printed, ",
    "because print takes multiple ",
    "arguments and prints them all!\n";
print "however, you can also " .
    "concatenate strings together " .
    "and print them all as one string.\n";

print <<DOC;
But if you have a lot of text to print,
you can use a "here document" and create
a literal string that runs until the
delimiter that was declared with <<.
DOC
print "..and now we're back to regular code.\n";

Vous pouvez lire ici les documents dans in perldoc perlop .

43
Ether

Encore une chose de Perl Best Practices :

Couper les longues lignes: Couper les expressions longues devant un opérateur. comme

Push @steps, $step[-1]
                  + $radial_velocity * $elapsed_time
                  + $orbital_velocity * ($phrase + $phrase_shift)
                  - $test
                  ; #like that
11
Nikhil Jain

C'est parce que vous êtes dans une chaîne. Vous pouvez fractionner les chaînes et concaténer à l'aide de . comme:

print "3\n";
print "hello, ".
"world\n";
5
codaddict

Utilisation ., l'opérateur de concaténation de chaînes:

$ Perl
print "hello, " .
"world\n";ctrl-d
hello, world
$
1
imgx64