Schrift
[thread]12409[/thread]

Problem mit dem Befehl "write"



<< >> 3 Einträge, 1 Seite
Snicker
 2008-08-27 11:09
#114023 #114023
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
Hi,
ich will ein Programm schreiben, das die Existens einer *.txt überprüft und sie gegebenfalls erstellt, wenn sie noch nicht existiert. Dabei soll er ein vorgefertigtes Format benutzen.
Insgesamt läuft es auch, nur das Programm nutzt den write Befehl nicht. Ich weiß nicht wo genau mein Fehler liegt.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use strict;
use warnings;

my $einstellungen = "Einstellungen.txt";
my $einstellungen_pfad = "D:\\Test\\$einstellungen";

format EXI =
Parameter1 = 1
Username: Ralf
.

if (-e $einstellungen_pfad){
    print "$einstellungen bereits vorhanden";
    <STDIN>
}else {
    open(EINSTELLUNGEN, ">$einstellungen_pfad");
    write (EXI);
    print "Erzeugung von $einstellungen war erfolgreich";
    <STDIN>
}
renee
 2008-08-27 11:29
#114025 #114025
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So funktionierts:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use strict;
use warnings;

my $einstellungen = "Einstellungen.txt";
my $einstellungen_pfad = "C:\\Pfad\\$einstellungen";

format EXI =
Parameter1 = 1
Username: Ralf
.

if (-e $einstellungen_pfad){
    print "$einstellungen bereits vorhanden";
}else {
    open(EINSTELLUNGEN, ">$einstellungen_pfad") or die $!;
    my $ofh = select EINSTELLUNGEN;
    $~ = 'EXI';
    write;
    select( $ofh );
    close EINSTELLUNGEN;
    print "Erzeugung von $einstellungen war erfolgreich";
}


siehe auch perldoc perlformat.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-08-27 11:40
#114026 #114026
Und was soll er wohin soll er schreiben? Du musst perl mitteilen, dass er das Format EXI mit EINSTELLUNGEN verbinden soll.

versuch mal das:
Code: (dl )
1
2
3
my $oldhandle = select EINSTELLUNGEN;
$~ = "EXI";
select ($oldhandle);


Jetzt solltest es funktionieren wenn du schreibst:
Code (perl): (dl )
write EINSTELLUNGEN;
<< >> 3 Einträge, 1 Seite



View all threads created 2008-08-27 11:09.