Εμφάνιση 1-7 από 7
  1. #1
    Εγγραφή
    20-09-2005
    Μηνύματα
    215
    Downloads
    1
    Uploads
    0
    Καλησπέρα και χρόνια πολλά.
    Έχω εδώ και λίγο καιρό ξεκινήσει να ασχολούμαι με προγραμματισμό και μαθαίνω για τη δουλειά να γράφω scripts σε perl για να αυτοματοποιώ ορισμένες διεργασίες.

    Είμαι σε περιβάλλον Mac Os Χ αλλά χρησιμοποιώ terminal και αν κάποιο πρόγραμμα δεν υπάρχει κάνω εγκατάσταση.

    προσπαθώ να ορίσω σε μια μεταβλητή που να μπορώ να τη χρησιμοποιώ σε όλο το script το path του Desktop, ώστε το script να φτιάχνει φακέλους, να γράφει σε αυτούς αρχεία και μετά να τα ξεgz και να τα διαβάζει.

    διάβασα ότι αυτό θα έπρεπε να γίνεται έτσι:

    Κώδικας:
    use File::Path;
    use warnings;
    use strict;
    #my $path = $ENV{'USERPROFILE'}; <--- αυτό παίζει μόνο για windows based;;;
    my $path = $ENV{HOME};
    
    my $desktop_path = "$path/Desktop";
    
    my $PeakDir = "$desktop_path/BioProject";
    mkpath($PeakDir);
    και το φτιάχνει...ΤΟ ΕΡΩΤΗΜΑ ΕΙΝΑΙ:

    τι γίνεται στο
    Κώδικας:
    $ENV{HOME};
    τι ακριβώς κάνει;
    και γιατί το
    Κώδικας:
    $ENV{'USERPROFILE'};
    δεν δουλεύει είναι γιατί παίζει μόνο σε windows based;;;

    ΕΥΧΑΡΙΣΤΩ ΕΚ ΤΩΝ ΠΡΟΤΕΡΩΝ

  2. #2
    Εγγραφή
    28-02-2006
    Μηνύματα
    1.162
    Downloads
    0
    Uploads
    0
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΓΑΛΑΤΣΙ
    Καλησπέρα και καλή χρονιά.

    Το %ENV είναι ένα hash που περιέχει τις μεταβλητές περιβάλλοντος και τις τιμές τους.

    Τρέχοντας π.χ. το παρακάτω script

    Κώδικας:
    #!/usr/bin/perl
    use warnings;
    use strict;
    
    for my $key ( keys %ENV ) {
        my $value = $ENV{$key};
        print "$key => $value\n";
    }
    θα δεις ένα σωρό μεταβλητές και τις τιμές τους. Το ποιες είναι αυτές οι μεταβλητές και τι τιμές έχουν, εξαρτάται προφανώς από την πλατφόρμα που τρέχεις το script. Για αυτό π.χ. η μεταβλητή 'USERPROFILE' που ανέφερες, ενδεχομένως να μην υφίσταται για μη windows συστήματα.
    NetBSD Rocks!
    http://www.netbsd.org

  3. #3
    Εγγραφή
    20-09-2005
    Μηνύματα
    215
    Downloads
    1
    Uploads
    0
    Παράθεση Αρχικό μήνυμα από Mosfet Εμφάνιση μηνυμάτων
    Καλησπέρα και καλή χρονιά.

    Το %ENV είναι ένα hash που περιέχει τις μεταβλητές περιβάλλοντος και τις τιμές τους.

    .
    ΑΥΤΌ δεν καταλαβαίνω, από που παίρνει τις μεταβλητές, πως ορίζονται αυτές οι μεταβλητές πως μπορώ να τις ανασύρω, τι τιμές μπορεί να πάρει.
    Και τι είναι το hash, συνήθως το βλέπω ως hash tables.

    Δεν πολύ καταλαβαίνω τα εγχειρίδια.

  4. #4
    Εγγραφή
    28-02-2006
    Μηνύματα
    1.162
    Downloads
    0
    Uploads
    0
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΓΑΛΑΤΣΙ
    Αυτές οι μεταβλητές περιβάλλοντος (και οι τιμές τους), ορίζονται από το εκάστοτε σύστημα. Όταν για παράδειγμα ανοίγεις μια κονσόλα σε windows ή linux (ή σε Mac OS X), οι μεταβλητές αυτές προϋπάρχουν και συνήθως ορίζονται και παίρνουν τιμές κατά το booting του υπολογιστή.

    Με τον κώδικα που παρέθεσα, μπορείς να πάρεις το όνομα ($key) και την τιμή ($value).

    Hash είναι γενικά μια κατηγορία μεταβλητών της perl (όπως π.χ. μια άλλη κατηγορία είναι τα arrays).

    Πάντως , καλό θα είναι να διαβάσεις κάποια από τα άπειρα tutorials και intros που υπάρχουν για την perl. Εκεί θα καταλάβεις τις αρχές της γλώσσας και θα λύσεις τις περισσότερες απορίες σου.
    NetBSD Rocks!
    http://www.netbsd.org

  5. #5
    Εγγραφή
    20-09-2005
    Μηνύματα
    215
    Downloads
    1
    Uploads
    0
    Οπότε με το ENV ουσιαστικά καλούμε σταθερές οι οποίες διευκρινίζονται στο {}.
    Ποια η διαφορά μεταξύ του $ % είναι ότι το ένα ορίζει array και το άλλο hash;

    το script το έτρεξα και έλαβα τα εξής:
    Κώδικας:
    HOME => /Users/sunta3iouxos
    DISPLAY => /tmp/launch-3oDfNZ/org.macosforge.xquartz:0
    COMMAND_MODE => unix2003
    ORG_CHROMIUM_CHROMIUM_FRAMEWORK_SERVICE_PROCESS/USERS/SUNTA3IOUXOS/LIBRARY/APPLICATION_SUPPORT/CHROMIUM_SOCKET => /tmp/launch-mBhUt9/ServiceProcessSocket
    SSH_AUTH_SOCK => /tmp/launch-b1i1Fv/Listeners
    Apple_PubSub_Socket_Render => /tmp/launch-5wj9hs/Render
    PWD => /Users/sunta3iouxos
    LANG => el_GR.UTF-8
    USER => sunta3iouxos
    LOGNAME => sunta3iouxos
    __CF_USER_TEXT_ENCODING => 0x1F5:6:20
    SECURITYSESSIONID => 24abf2
    TERM_PROGRAM => Apple_Terminal
    SHLVL => 1
    _ => /opt/local/bin/perl
    TERM_PROGRAM_VERSION => 273.1
    PATH => /opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/X11/bin
    SHELL => /bin/bash
    TMPDIR => /var/folders/nY/nYCsY4IpGBicNgfTPKXbI++++TI/-Tmp-/
    TERM => xterm-color
    με τα κεφαλαία είναι οι σταθερές που εισάγω στο {} για να λάβω συγκεκριμένες τιμές;

    Ποια άλλη χρησιμότητα μπορεί να έχει από το να εισάγω πχ την διεύθυνση του home φακέλου σε μεταβλητή;;

    υπάρχει και αυτό, που τώρα το είδα:
    http://en.wikipedia.org/wiki/Environment_variable
    Τελευταία επεξεργασία από το μέλος trotos : 04-01-12 στις 16:33.

  6. #6
    Εγγραφή
    09-09-2004
    Μηνύματα
    1.835
    Downloads
    2
    Uploads
    0
    Ταχύτητα
    16384/1024
    ISP
    Conn-x OTE
    SNR / Attn
    3(dB) / 21(dB)
    Path Level
    Fastpath
    Άσχετο, αλλά τσέκαρες αν μπορούν να γίνουν αυτά που θέλεις με τον Automator; Τουλάχιστον αυτά που περιγράφεις γίνονται πανεύκολα.

  7. #7
    Εγγραφή
    20-09-2005
    Μηνύματα
    215
    Downloads
    1
    Uploads
    0
    δε με ενδιαφέρει, θέλω να φτιάξω ένα script που να δουλεύει όσο το δυνατόν σε περισότερα unix/;inux based μηχανήματα. Όταν θα ολοκληρωθεί θα πάει να τρέξει σε cluster και θα γίνει από άλλον optimized για multi-core-thread-big-mem και δε ξέρω τι άλλο.
    Απλά πρέπει να φτιάξω μόνος τον βασικό σκελετό για να μάθω.

Παρόμοια Θέματα

  1. Εργασία στην perl sos
    Από kontras στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 3
    Τελευταίο Μήνυμα: 26-05-10, 23:40
  2. Άσκηση στην perl απορία
    Από kontras στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 11
    Τελευταίο Μήνυμα: 01-04-10, 10:07
  3. ΠΡΩΤΑΡΑ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ PC
    Από marina6 στο φόρουμ Συνθέσεις Η/Υ και αναβαθμίσεις
    Μηνύματα: 28
    Τελευταίο Μήνυμα: 06-10-08, 14:10
  4. Απορίες στην κατασκευή site
    Από Knorcedger στο φόρουμ Web authoring, development & web design
    Μηνύματα: 12
    Τελευταίο Μήνυμα: 13-05-04, 01:45

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας