Certaines des variables d'environnement que nous utilisons dans Unix sont comme ci-dessous (juste un exemple):Perl et de l'environnement Variables
VAR1=variable1
VAR2=variable2
VAR3=variable3
# and so on
Maintenant, j'ai un script Perl (appelons-le test.pl)
qui lit une tabulation fichier texte (appelons-le test.txt
) et pousse le contenu de celui-ci dans des colonnes séparées.La première colonne de test.txt
contient les informations suivantes par exemple (les chaînes dans la première colonne sont délimitées par /
mais je ne sais pas comment /
une chaîne contiendrait et à quelle position apparaîtrait la variable d'environnement):
$VAR1/$VAR2/$VAR3
$VAR3/some_string/SOME_OTHER_STRING/and_so_on/$VAR2
$VAR2/$VAR1/some_string/some_string_2/some_string_3/some_string_n/$VAR2
L'extrait du script est comme ci-dessous:
use strict;
my $input0 = shift or die "must provide test.txt as the argument 0\n";
open(IN0,"<",$input0) || die "Cannot open $input0 for reading: $!";
my @first_column;
while (<IN0>)
{
chomp;
my @cols = split(/\t/);
my $first_col = `eval $cols[0]`; #### but this does not work
# here goes the push stmt to populate the array
### more code here
}
close(IN0);
Question: Comment puis-je accéder à des variables d'environnement dans une telle situation de sorte que le tableau est rempli comme ci-dessous:
$first_column[0] = variable1/vraible2/variable3
$first_column[1] = variable3/some_string/SOME_OTHER_STRING/and_so_on/variable2
$first_column[2] = variable2/variable1/some_string/some_string_2/some_string_3/some_string_n/variable2
Votre question n'a pas de sens, s'il vous plaît préciser ..... – ennuikiller
je l'ai montré l'entrée d'échantillon et j'ai montré le résultat souhaité. Quoi d'autre dois-je ajouter maintenant? – sachin
Autorisez-vous également les extensions normales de mots tels que $ {VAR1: -foo} ou les expansions complexes (par exemple les bashismes) comme $ {VAR1 // foo/bar}? –