Perl auf Mac ausgeben...

Diskutiere mit über: Perl auf Mac ausgeben... im Web-Programmierung Forum

  1. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    Morgen,

    wie kann ich Perl Code auf meinem Mac am besten ausgeben? Was für Tools ausser das Terminal gibts? Ich bin gerade am Perl lernen und möchte meine Übungsskripte gerne anschauen. Im Terminal werden z.B. Zeilenabstände \n nicht dargestellt.

    Gruss
    Schatti
     
  2. TanteKäthe

    TanteKäthe MacUser Mitglied

    Beiträge:
    11
    Zustimmungen:
    0
    Registriert seit:
    20.05.2005
    Hi! Was meinst du denn genau? Willst du Dir den Quellcode ansehen (TextWrangler) oder das Programm ablaufen lassen. Dafür würde man dann schon das Terminal nehmen. Bei mir gibt er da auch Zeilenschaltungen \n aus.
    Gib mal direkt in Terminal
    perl -e 'print "Hallo\nHallo\n";'
    ein. Das führt das Programm in ' ' direkt aus.
    Bei mir schreibt er dann
    Hallo
    Hallo

    Gruß TanteKäthe
     
  3. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    Programm laufen lassen. Dachte das hätte ich eigentlich geschrieben. :)

    Gibt es einen Unterschied zwischen perl -l und perl -e ?
    Ich lass meine Testprogramme mit perl -l laufen da dies so in meinem Perl Buch stand. Und da wird der Zeilenumbruch einfach als \n dargestellt aber nicht wirklich umgebrochen.

    Gruss
     
  4. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.031
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    perl -e 'command'

    führt das Kommando direkt aus, also ohne ein Perlskript einer Datei zu starten. Das Terminal ist kein 'Tool' für Perl, sondern Perl eine Skriptsprache für's Terminal ( oder als Modul für Apache falls Du Webseiten schreiben magst).
    es ist möglich mit Perl GUI zu programmieren ( innerhalb des X11-Servers), für den Anfang ist es aber üebrsichtlicher und einfacher nur mit der Shell (dem terminal) zu arbeiten!
     
  5. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    Nun ich lerne Perl für Bioinformatik. Ich werde also versuchen kleine Miniprogramme zu schreiben ( in Textfiles ) mit denen ich dann einfach Funktionen im Laboralltag vereinfachen kann. z.B. das Zählen von Startcodons in einer DNA Sequenz und das anschliessende Ausgeben dieser..
    Hab aber erst angefangen zu lernen und stecke noch auf den ersten Seiten.
    Als Buch benutze ich "Beginning Perl for Bioinformatics" von O'Reilly.

    Und eben in diesem Buch steht ausgabe auf OSX mit Terminal und perl -l

    Und wenn ich das mache mit z.B. folgendem Testscript:

    Code:
    #!/usr/bin/perl -w
    # Concatenating DNA
    
    # Store two DNA fragments into two variables called $DNA1 and $DNA2
    $DNA1 = 'ACGGGAGGACGGGAAAATTACTACGGCAATTAGC';
    $DNA2 = 'ATAGTGCCGTGAGAGTGATGTAGTA';
    
    # Print the DNA onto the screen
    print "Here are the original two DNA fragments:\n\n";
    
    print $DNA1, "\n";
    
    print $DNA2, "\n\n";
    
    # Concatenate the DNA fragments into a third variable and print them
    # Using "string interpolation"
    $DNA3 = "$DNA1$DNA2";
    
    print "Here is the cencatenation of the first two fragments (version 1):\n\n";
    
    print "$DNA3\n\n";
    
    # An alternative way unsing the "dot operator":
    # Concatenate the DNA fragments into a third variable and print them
    $DNA3 = $DNA1 . $DNA2;
    
    print "Here is the concatenation of the first tow fragments (version 2):\n\n";
    
    print "$DNA3\n\n";
    
    # Print the same thing without using the variable $DNA3
    print "Here is the concatenation of the first two fragments (version 3);\n\n";
    
    print $DNA1, $DNA2, "\n";
    
    exit;
    Macht mein Terminal keine Zeilenumbrüche..

    Später denke ich werde ich diese Programme wohl als Website Tool verwenden oder versuchen das ganze als GUI Applikation laufen zu lassen. Hab aber keine Ahnung wie das ich dann machen muss.. Erstmal heisst es Grundlagen lernen.


    Gruss und danke für die Tips und Hinweise
     
  6. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.031
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    In Zeile 1 verwendest Du ein sogenanntes bang:

    #!/usr/bin/perl -w

    sprich die Shell erkennt, daß dieses Skript von /usr/bin/perl ausgeführt wird und startet Perl automatisch, wenn Du die Datei direkt startest. Dazu mußt Du nur die Datei ausführbar machen:

    # ändere den Modus der Datei so das der besitzer sie ausführen darf:
    chmod u+x dateiname

    dann kannst Du direkt mit ./dateiname das skript starten. Der dortige Aufruf ist übrigens ohne -l. Es wird lediglich mit -w mehr Warnungen angezeigt. Das -l war sicher mal in einem früheren Beispiel sinnvoll, in diesem Fall würd ich es weglassen ( eben weil sonst keine Zeilenumbrüche gemacht werden!).
     
  7. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    Okay, hab jetzt nur etwa die Hälfte verstanden.. :D

    Aber erstmal wie meinst du das mit Zugriffsrecht ändern? Soll ich das vom Terminal aus machen oder in der Datei selber? *blutigerperlanfängerbin*

    Fürs Terminal wäre es der Befehl

    chmod u+x dateiname ?

    dateiname muss der ganze Pfad angeben werden zur Datei?

    Gruss und danke!
     
  8. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.031
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    *auchmalblutigeranfängerwar*

    chmod ist ein Terminalbefehl, ja! Damit ändert man die Zugriffsrechte auf eine Datei. Hinter chmod gibst Du an, ob die Besitzerrechte u, die Gruppenrechte g oder die rechte für alle o geändert werden sollen. Also

    chmod u oder chmod g oder chmod o

    willst Du Rechte hinzufügen folgt ein + sonst ein - um sie zu entfernen.
    Die einzelnen Rechte sind:

    r read
    w write
    x execute

    Wenn Du eine Textdatei ( nichts anderes ist ein Perscript ja) ausführbar machen möchtest im Terminal, dann mußt Du

    chmod u+x dateiname

    eingeben um die Execute-Eigenschaft hinzuzufügen. Ob der Name vollständig mit Pfad ist oder relativ ist egal. Wenn der Pfad für ls klappt, dann klappt er auch für chmod!
    Executable macht nat. nur Sinn nei Dateien, die auch ausgeführt werden können - logisch. Eine Textdatei kann nicht ausgeführt werden. Daher macht es dort eigentlich keinen Sinn. ALLERDINGS hat man unter UNIX das andauernde

    >perl -w meinedatei.pl

    satt gehabt ( das Problem tritt ja auch bei anderen Skriptsprachen in der Shell/Terminal auf) und eine Abkürzung vereinbart. Wenn die absolut erste Zeile der Datei mit

    #!

    beginnt ( das nennt man bang!), dann bedeutet dies hiernach steht der Interpreter der diese Datei ausführen kann. In Deinem Fall ist es /usr/bin/perl mit der Option -w. Ich verwende meist PHP, so daß meine Dateien oft mit #! /usr/local/bin/php beginnen. Das Prinzip ist das Gleiche.

    Danach ist es möglich statt

    perl -w dateiname.pl

    einfach direkt

    ./dateiname.pl

    zu starten (oder bei mir eben dateiname.php). Voraussetzung dazu ist das setzen des Executable-Flags mit chmod (siehe oben). Wenn Du es nur für den user setzt, kann auch niemand sonst die Datei direkt ausführen!

    Das -l laß bleiben, dann hast Du auch wieder Zeilenumbrüche!
     
  9. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    Herzlichen Dank für diese ausführliche Erklärung!!!
    Damit sollte es jetzt funktionieren! Werds gleich ausprobieren und mich anschliessend weiter durch mein Buch lesen. Wenn ich wieder Probleme habe, weiss ich ja jetzt wer mir helfen kann! :)

    Nochmals danke!!!
     
  10. Schattenmantel

    Schattenmantel Thread Starter MacUser Mitglied

    Beiträge:
    1.752
    Zustimmungen:
    1
    Registriert seit:
    22.04.2002
    So ausprobiert. Das mit dem chmod ist ne feine Sache, muss ich zugeben. Einfach Drag&Drop der Datei ins Terminal Fenste rund Enter und fertig.

    Allerdings werden die Zeilenumbrüche immernoch mit \n angezeigt. :-(
     
Die Seite wird geladen...
Ähnliche Themen - Perl auf Mac Forum Datum
Hilfe, nach Installation zwei Perl versionen Web-Programmierung 31.07.2012
Matches aus PERL REGEX extrahieren ??? ($1 gibt mir nur eins zurück) Web-Programmierung 29.08.2010
Problem mit Net::Ping (Perl) Web-Programmierung 28.12.2009
AppleScript statt Perl für web seite? Web-Programmierung 07.11.2009
Perl - write output to file geht nicht mehr Web-Programmierung 25.06.2009

Diese Seite empfehlen

Benutzerdefinierte Suche