GoGPT Best VPN GoSearch

Icône de favori OnWorks

perldlp - En ligne dans le Cloud

Exécutez perldlp dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande perldlp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


perldl - Shell simple pour PDL (voir aussi pdl2)

SYNOPSIS


Utilisez PDL de manière interactive :

bash$perldl
pdl> $a = séquence(10) # ou toute autre commande perl ou PDL

bash$pdl
pdl> print "Bonjour tout le monde !\n" ;

Exécutez un script :

bash$ chat > ​​pdfscript
#!/usr/bin/pdl
print "Bonjour tout le monde !\n" ;
...

DESCRIPTION


Le programme perl est un simple shell (écrit en perl) pour une utilisation interactive de PDL. Ce
se compose d'une interface de ligne de commande qui prend en charge l'interprétation immédiate de perl
commandes et expressions. Les expressions Perl, y compris les constructions PDL, peuvent être saisies
directement au clavier et sont compilés et exécutés immédiatement. La syntaxe n'est pas
exactement identique à Perl, dans la mesure où, dans la plupart des cas, la fin d'une ligne provoque immédiatement
l'exécution de la commande entrée jusqu'à présent (aucun ';' de fin n'est requis).

Le synonyme M est un exécutable compilé qui est utile comme interpréteur de script sous UNIX
syntaxe shebang ("#!"). Ceci est utile pour générer et réexécuter un journal de commandes
les fichiers de perl.

L'exposition perl shell exécute un fichier de démarrage initial ("~/.perldlrc") qui peut être utilisé pour précharger
modules perl ou configurer l'environnement global perl. Il dispose d'un mécanisme de chemin pour
chargement automatique des sous-routines perl. Il existe un mécanisme d'historique de commande et plusieurs autres
fonctionnalités utiles telles que le prétraitement des commandes, les raccourcis pour les commandes couramment utilisées telles que
comme "print", et la possibilité d'exécuter du code arbitraire chaque fois qu'une invite est imprimée.

En fonction de vos paramètres de configuration, perl peut être configuré pour honorer ou ignorer le ^D
(fin de fichier) lorsqu'il est envoyé depuis un terminal, ou pour tenter de faire la bonne chose
lorsqu'une construction de bloc couvrant plusieurs lignes est rencontrée.

perl et M prend en charge plusieurs options de ligne de commande, qui sont discutées vers la fin de
ce document.

Références Manuel & en ligne vous aider
Le manuel de référence PDL et l'aide en ligne sont disponibles dans perl, En utilisant l' vous aider
et à propos commandes (qui peuvent aussi être abrégées ? et ??.) Le vous aider commande seul
imprime un résumé de la syntaxe de l'aide, et vous aider imprimera la documentation POD à partir de
le module que vous mentionnez (POD est le format Perl pour intégrer la documentation dans votre perl
code; voir perlpod pour plus de détails).

Si vous incluez de la documentation POD dans vos sous-programmes de chargement automatique (voir chemin mécanisme au dessous de),
puis les deux vous aider et à propos le trouvera et pourra le formater et l'afficher à la demande.

Histoire mécanisme
Si vous avez installé les modules perl ReadLines et ReadKeys, alors perl prend en charge un
historique et mécanisme d'édition de ligne utilisant des touches d'édition similaires à emacs. Les 500 derniers
les commandes sont toujours stockées dans le fichier .perldl_hist dans votre répertoire personnel entre
séances. Définissez $PERLDL::HISTFILESIZE pour modifier le nombre de lignes enregistrées. La commande " je
[nombre]" vous montre les dernières commandes "nombre" que vous avez tapées, où "nombre" est par défaut 20.

par exemple:

bash$perldl
ReadLines activé
pdl> $a = rfits "foo.fits"
BITPIX = -32 taille = 88504 pixels
Lecture 354016 octets
ÉCHELLE B = && BZÉRO =

pdl> journal imag($a+400)
Affichage de l'image 299 x 296 de 4.6939525604248 à 9.67116928100586 ...

Command efficace
Si vous entrez une commande simple au perl ligne de commande, il est immédiatement exécuté dans un
Perl "eval()". L'environnement est presque identique à celui d'un script perl, avec
quelques exceptions importantes :

· $_ n'est pas conservé entre les lignes

$_ est utilisé pour contenir la ligne de commande pour le traitement initial, donc au début de
traitement de chaque ligne de commande, $_ contient la commande elle-même. Utiliser des variables autres
que $_ pour stocker des valeurs sur plusieurs lignes.

· La portée n'est pas préservée entre les lignes

Chaque ligne de commande est exécutée dans un bloc "eval" séparé au sein de perl, donc la portée
les commandes telles que "my" et "local" peuvent ne pas fonctionner exactement comme prévu - en particulier,
si vous déclarez une variable avec "my", elle est locale à la ligne de commande particulière sur
laquelle vous avez tapé la commande "my", ce qui signifie qu'elle s'évaporera avant la prochaine
l'invite est imprimée. (Vous pouvez utiliser des variables "my" dans un bloc multiligne ou pour isoler
valeurs dans une seule ligne de commande, bien sûr).

REMARQUE : pdl2 préserve la portée lexicale entre les lignes.

· L'exécution est immédiate

Dans la plupart des cas, dès que vous terminez une ligne d'entrée, la ligne est analysée et
réalisé. Cela rompt la dépendance normale de Perl vis-à-vis des points-virgules comme délimiteurs de commandes.
Par exemple, l'expression sur deux lignes

imprimer "Bonjour",
"monde";

imprime la phrase "Hello world" en Perl, mais (dans la plupart des cas) "Hello" dans
perl.

· Exécution multiligne

En mode multiligne (activé par défaut, voir coquille les variables, au dessous de), perl
recherche des recherches de constructions de type bloc avec des accolades, des parenthèses, des guillemets,
et les délimiteurs associés. Si vous laissez une telle construction ouverte, perl accepte plus de lignes
d'entrée jusqu'à ce que vous fermiez la construction ou terminiez explicitement l'expression multiligne avec
^D. Suivant l'exemple ci-dessus, la phrase

{ imprimer "Bonjour",
"monde"; }

affichera "Hello world" à partir de Perl ou (en mode multiligne) perl.

Avertissement: L'analyse multiligne utilise le module Text::Balanced de Damian Conway, qui
contient quelques défauts -- il peut donc être trompé par des opérateurs de type guillemets tels que "q/.../",
inclus la documentation POD, des citations "<<" multi-lignes, et quelques-uns particulièrement bizarres-mais-
correspondances "m/.../" et substitutions "s/.../.../" valides. Dans de tels cas, utilisez ^D pour fermer
la construction multiligne et force la compilation et l'exécution.

Si vous souhaitez conserver ce comportement dans un script (par exemple pour rejouer un journal de commandes
déposer; voir ci-dessous comment en créer un), vous pouvez utiliser M au lieu de perl comme interprète
dans la ligne shebang initiale du script.

Terminer "perldl"
Une session "perldl" peut être terminée avec l'une des commandes "quit", "exit" ou la
raccourcis "x" ou "q". Si la gestion EOF est activée (valeur par défaut), vous pouvez également taper ^D
à l'invite de commande.

Si l'entrée de commande n'est PAS un terminal (par exemple si vous exécutez à partir d'une commande
fichier journal), alors EOF se terminera toujours perl.

Terminer commandes (Ctrl-C manutention)
Les commandes exécutées dans "perldl" peuvent être interrompues prématurément en utilisant "Ctrl-C" (ou
quelle que soit la séquence de touches qui envoie un signal INT au processus sur votre terminal). A condition que votre
Le code PDL n'ignore pas les "sigint", cela devrait vous renvoyer à la commande "perldl"
rapide:

pdl> $result = start_lengthy_computation()

Ctrl-C détecté

pdf>

Raccourcis et alias
· Le shell alias "p" pour être une forme courte pratique de "print", par exemple

pdl> p ceux 5,3

[
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
]

· "q" et "x" sont des raccourcis pour "quit".

· "l" liste le tampon d'historique

pdl> l # liste les 20 dernières commandes

pdl> l 40 # liste les 40 dernières commandes

· "?" est un alias pour l'aide

pdl> ? pdl2 # obtenir de l'aide pour le nouveau shell pdl2

· "??" est un alias pour apropos

pdl> ?? PDL::Doc

· help, apropos, usage et sig : tous les mots après ces commandes sont utilisés textuellement et non
évalué par perl. Ainsi, vous pouvez écrire, par exemple,

pdf> aide aide

au lieu de

pdf> aide 'aide'

Ligne de commande Options
perl et M prend en charge plusieurs options de ligne de commande pour ajuster le comportement de la session.
La plupart d'entre eux sont équivalents à des commandes qui peuvent être saisies au pdf> rapide. Elles sont:

-surabondance
Chargez OpenGL au démarrage du shell (le module perl OpenGL, disponible à partir de
CPAN doit être installé). Cela permet le traitement de la boucle d'événement readline. Ne pas utiliser avec
-merci.

-tk Charger Tk lors du démarrage du shell (le module perl Tk, qui est disponible à partir du CPAN doit
être installé). Cela permet le traitement de la boucle d'événement readline. Ne pas utiliser avec -glut.

-f fichier
Charge le fichier avant de traiter toute entrée utilisateur. Toute erreur lors de l'exécution de
le fichier sont fatales.

-w S'exécute avec les messages d'avertissement (c'est-à-dire les avertissements perl normaux "-w") activés.

-Module M
Charge le module avant de traiter toute entrée utilisateur. Comparez "perl" correspondant
interrupteur.

module -m
Décharge le module avant de traiter toute entrée utilisateur.

-Je répertoire
Ajoute un répertoire au chemin d'inclusion. (c'est-à-dire le tableau @INC) Comparez "perl" correspondant
interrupteur.

-V Imprime un résumé de la configuration PDL. Cette information doit être incluse avec tout bogue PDL
rapport. Comparez le commutateur "perl" correspondant.

L'exposition Commencez filet ~/.perldlrc
Si le fichier ~/.perldlrc est trouvé, il provient au démarrage pour charger les modules par défaut, définissez
variables shell, etc. S'il n'est PAS trouvé, le fichier de distribution PDL/default.perldlrc is
lire à la place. Celui-ci charge différents modules jugés utiles par défaut, et qui assurent
compatibilité avec la v1.11. Si vous n'aimez pas cela et que vous voulez un ensemble plus rationalisé de votre
propres modules préférés simple créez les vôtres ~/.perldlrc. Vous pouvez commencer par le
existant PDL/default.perldlrc comme modèle car il ne sera pas sourcé une fois que vous aurez remplacé
avec votre propre version.

Pour définir encore plus de valeurs par défaut locales, le fichier local.perldlrc (dans le répertoire courant) est
sourcé s'il est trouvé. Cela vous permet de charger des modules et de définir des sous-routines pour le projet dans le
répertoire actuel.

Le nom est choisi spécifiquement parce qu'il a été trouvé que les fichiers cachés n'étaient PAS recherchés dans ces
circonstances.

Le fichier de démarrage devrait normalement inclure "use PDL::AutoLoader;", comme la plupart des plus beaux
les fonctionnalités interactives ne fonctionneront pas sans cela.

coquille les variables
Variables du shell : (Note: si vous n'aimez pas les valeurs par défaut, modifiez-les dans ~/.perldlrc)

· $PERLDL::ESCAPE - valeur par défaut '#'

Toute ligne commençant par ce caractère est traitée comme un échappement de shell. La valeur par défaut
est choisi car il échappe au code de l'interpréteur perl standard.

· $PERLDL::HISTFILESIZE - valeur par défaut 500

Il s'agit du nombre de lignes de l'historique des commandes du shell perldl à conserver.

· $PERLDL::PAGER - valeur par défaut "plus"

Programme externe pour filtrer la sortie des commandes. L'utilisation de "plus" imprime une sortie
écran à la fois. Sous Unix, la configuration page(1) et $PERLDL::PAGER vers "tee -a outfile"
conservera un enregistrement de la sortie générée par les commandes perldl suivantes (sans
pagination).

· $PERLDL::PROMPT - valeur par défaut 'pdl> '

Assez dit, mais peut également être défini sur une référence de sous-programme, par exemple $PERLDL::PROMPT =
sub {join(':',(gmtime)[2,1,0]).'> '} met l'heure actuelle dans l'invite.

· $PERLDL::MULTI - valeur par défaut 1

Si cela est défini sur une valeur vraie, alors perldl analysera les blocs perl multi-lignes : votre
l'entrée ne sera pas exécutée tant que vous n'aurez pas terminé une ligne sans opérateur de groupe en attente
(comme des guillemets, des blocs, des parenthèses ou des crochets) toujours actifs. Lignes de continuation
avoir une invite différente qui vous montre quels délimiteurs sont encore actifs.

Notez qu'il ne s'agit pas (encore !) d'un parseur perl complet. En particulier, Text::Balanced
semble pouvoir ignorer les opérateurs de guillemets tels que "q/ ... /" dans une ligne, mais pas
pour pouvoir les étendre à travers les lignes. De même, il n'y a pas de support pour le '<<'
.

Les chaînes conventionnelles multilignes et les regroupements {}, [] et () sont bien pris en charge.

· $PERLDL::NO_EOF - valeur par défaut 0/1 sur MSWin32

Protège contre l'utilisation accidentelle de "^D" depuis le terminal. Si cela est défini sur un vrai
value, alors vous ne pouvez pas quitter accidentellement perldl en tapant "^D". Si vous le définissez sur un
valeur supérieure à 1 (et PERLDL::MULTI est défini), alors vous ne pouvez pas utiliser "^D" pour quitter
commandes multilignes non plus. Si vous transférez des commandes à partir d'un fichier ou d'un tube, cela
variable n'a aucun effet.

· $MAISON

Le répertoire personnel de l'utilisateur

· $PERLDL::TERME

Il s'agit de l'objet Term::ReadLine associé au shell perldl. Il peut être utilisé par
routines appelées depuis perldl si votre commande est interactive.

· $PDL ::toolongtoprint

La taille maximale des pdls à imprimer (par défaut à 10,000 éléments). Ce n'est pas seulement un
variable "perldl" ou "pdl2" mais c'est quelque chose qui est généralement nécessaire dans un
session de débogage interactive.

Exécuter scripts à partir de le "perldl" prompt
Un idiome utile pour développer des scripts perldl ou des fonctions d'édition en ligne est

pdl> # script emacs &
-- ajouter le code perldl au script et enregistrer le fichier

pdl> faire 'script'

-- remplacez votre éditeur de fenêtre préféré par 'emacs' (vous devrez peut-être aussi changer
le '&' sur les systèmes non Unix).

Exécuter à nouveau "do 'script'" met à jour toutes les variables et définitions de fonction à partir du
version actuelle de 'script'.

Exécuter perl scripts à partir de le commander en ligne
Les scripts PDL ne sont que des scripts perl qui utilisent PDL (et éventuellement PDL::NiceSlice).
Mais pour les vrais paresseux, perldl peut être invoqué comme interpréteur de script. Parce que perldl est
lui-même un script perl interprété, la plupart des unices ne vous permettront pas de dire "#!/usr/bin/perldl"
en haut de votre script.

Au lieu de cela, dites "#!/usr/bin/pdl" et votre script sera exécuté exactement comme si vous l'aviez tapé,
ligne par ligne, dans le shell perldl.

Command prétraitement
REMARQUE : cette fonctionnalité est utilisée par défaut par PDL::NiceSlice. Voir ci-dessous pour en savoir plus sur le tranchage
à l'invite "perldl"

Dans certains cas, il est pratique de traiter les commandes avant qu'elles ne soient envoyées à perl pour
exécution. Par exemple, c'est le cas où le shell est présenté à des personnes
peu familier avec perl mais qui souhaitent profiter des commandes ajoutées localement (par exemple par
en citant automatiquement les arguments de certaines commandes).

*REMARQUE* : L'interface de prétraitement a changé par rapport aux versions précédentes ! L'ancienne façon d'utiliser
$PERLDL::PREPROCESS fonctionnera toujours mais est fortement déconseillé et pourrait disparaître dans le
avenir.

Vous pouvez activer le prétraitement en enregistrant un filtre avec la fonction "preproc_add".
"preproc_add" prend un argument qui est le filtre à installer. Un filtre est un Perl
référence de code (généralement définie dans un fichier de configuration local) qui sera appelée, avec le
chaîne de commande actuelle comme argument, juste avant l'exécution de la chaîne par le shell.
La chaîne modifiée doit être renvoyée. Notez que vous pouvez faire "perldl" complètement
inutilisable si vous ne retournez pas la chaîne modifiée ; arrêter de fumer est alors votre seule option.

Les filtres peuvent être supprimés du pipeline de prétraitement en appelant "preproc_del" avec le
filtre à supprimer comme argument. Pour savoir si un filtre est actuellement installé dans le
pipeline de prétraitement utiliser "preproc_registered":

pdl> preproc_add $myfilter à moins que preproc_registered $myfilter ;

Les versions précédentes de "perldl" utilisaient la variable $PERLDL::PREPROCESS. Cela fonctionnera toujours
mais doit être évité. Veuillez modifier vos scripts pour utiliser les fonctions "preproc_add" etc.

Le code suivant vérifierait un appel à la fonction 'mysub' et des arguments entre crochets avec
qw.

$filter = preproc_add sous {
mon $str = décalage ;
$str =~ s/^\s+//; # Supprimer l'espace de tête
si ($str =~ /^monsub/) {
my ($commande, $arguments) = split(/\s+/,$str, 2);
$str = "$commande qw( $arguments )"
if (défini $arguments && $arguments !~ /^qw/);
};
# Renvoie la chaîne d'entrée, modifiée selon les besoins
renvoie $str;
};

Cela convertirait :

pdl> mysub arg1 arg2

à

pdl> mysub qw( arg1 arg2 )

que Perl comprendra comme une liste. Évidemment, un peu plus d'efforts sont nécessaires pour
vérifier les cas où l'appelant a fourni une liste normale (et ne nécessite donc pas
cotation automatique) ou une interpolation variable est requise.

Vous pouvez supprimer ce préprocesseur en utilisant la fonction "preproc_del" qui prend un argument
(le filtre à supprimer, il doit s'agir du même coderef qui a été renvoyé d'un précédent
appel « preproc_add » :

pdl> preproc_del $filter;

Un exemple d'utilisation réelle peut être trouvé dans le script "perldl". regarde la fonction
"trans" pour voir comment le préprocesseur niceslicing est activé/désactivé.

"perldl" et PDL :: NiceSlice
PDL::NiceSlice introduit une syntaxe de découpage plus pratique pour les piddles. En cours
versions de "perldl" et "pdl2" niceslicing est activé par défaut (si le CPAN requis
modules sont installés sur votre machine).

Au démarrage, "perldl" vous indiquera si niceslicing est activé. Le message de démarrage sera
contiennent des informations à cette fin, quelque chose comme ceci :

shell perlDL v1.XX
PDL est livré avec ABSOLUMENT AUCUNE GARANTIE. Pour plus de détails, consultez le fichier
'COPYING' dans la distribution PDL. C'est un logiciel gratuit et vous
sont invités à le redistribuer sous certaines conditions, voir
le même fichier pour plus de détails.
ReadLines, NiceSlice activé
Lecture de /home/csoelle/.perldlrc...
Tapez « demo » pour les démos en ligne
PDL v2.XX chargé

Lorsque vous recevez un tel message indiquant que "NiceSlice" est activé, vous pouvez utiliser le
syntaxe de découpage :

pdl> $a = séquence 10 ;
pdl> p $a(3:8:2)

Pour plus de détails, consultez PDL::NiceSlice.

PDL::NiceSlice installe un filtre dans le pipeline de prétraitement (voir ci-dessus) pour activer le
syntaxe de découpage améliorée. Vous pouvez utiliser quelques commandes dans le shell "perldl" pour changer cela
prétraitement activé ou désactivé et vérifiez également explicitement les substitutions que le NiceSlice
filtre fait.

Vous pouvez activer et désactiver le filtre PDL::NiceSlice en tapant

pdl> trans # activer niceslicing

et

pdl> notrans # désactiver niceslicing

respectivement. Le filtre est activé par défaut.

Pour voir comment vos commandes sont traduites, activez les rapports :

pdl> rapport 1;
pdl> p $a(3:8:2)
traité p $a->nslice([3,8,2])
[3 5 7]

De même, désactivez les rapports si nécessaire

pdl> rapport 0;
pdl> p $a(3:8:2)
[3 5 7]

La création de rapports est désactivée par défaut.

Automatiquement exécuter votre propre crochets
La variable @PERLDL::AUTO est une simple liste de chaînes de code perl et/ou de référence de code. Ce
est utilisé pour définir le code à exécuter automatiquement à chaque fois que l'utilisateur entre une nouvelle ligne.

Un exemple simple serait d'imprimer l'heure de chaque commande :

pdl> push @PERLDL::AUTO,'print scalar(gmtime),"\n"'

pdl> imprimer des zéros(3,3)
Dim 3 mai 04:49:05 1998

[
[0 0 0]
[0 0 0]
[0 0 0]
]

pdl> imprimer "Boo"
Dim 3 mai 04:49:18 1998
Huer
pdf>

Ou pour vous assurer que toutes les modifications apportées au fichier 'local.perldlrc' sont toujours prises en compte :-

pdl> push @PERLDL::AUTO,"do 'local.perldlrc'"

Ce code peut bien sûr être mis *dans* 'local.perldlrc', mais attention :-) [Astuce : ajouter
"à moins que ($started++)" ci-dessus pour s'assurer que cela n'est fait qu'une seule fois !]

Un autre exemple d'application est un crochet pour les autochargeurs (par exemple, PDL::AutoLoader) à ajouter
code aussi qui leur permet de réanalyser automatiquement leurs fichiers pour les modifications. C'est
extrêmement pratique à la ligne de commande interactive. Puisque ce crochet n'est que dans la coquille
il n'impose aucune inefficacité aux scripts PDL.

Notez enfin qu'il s'agit d'une fonction très puissante - ce qui signifie qu'elle doit être utilisée avec
mise en garde!

Utiliser perldlp en ligne à l'aide des services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.