webForumDet fria alternativet

Jämföra strängar?

4 svar · 275 visningar · startad av mange

mangeMedlem sedan jan. 200230 inlägg
#1

kan man inte jämföra strängen så här?
Har kollat på nätet men det jag hittar ingen annan lösning. Bör sägas att jag är ganska novis i detta språk :)

$rakn = 0;
foreach $element (@lista)
{
	if($key[$rakn] eq "email")
	{
		$email = $value[$rakn];
		print "$email";
		$rakn++;	
	}
}
HansenMedlem sedan aug. 2000374 inlägg
#2

Hej,

Bidrar med några exempel

#/usr/bin/perl -w

use strict;

my ( $email, %hash );
my @keys  = ( 'namn', 'adress', 'email' );
my @values = ( 'Christian Hansen', 'Norregatan', 'ch@ngmedia.com' );

# Alternativ 1
for ( my $i = 0; $i <= scalar(@keys); $i++ ) {
    next unless $keys[$i] eq "email";
    $email = $values[$i];
    last;
}

print "Alt 1. Din mail: $email\n";

# Alternativ 2
@hash{ @keys } = @values; #Kallas för hashslice

if ( exists $hash{'email'} ) {
    $email = $hash{'email'};
}

print "Alt 2. Din mail: $email\n";

------------------
Hansen
c.h@ngmedia.com

HansenMedlem sedan aug. 2000374 inlägg
#3

Gillar inte att wF envisas med att trunkera "tomma" rader, det gör att det blir mer svårläst.
http://perl.ikubik.nu/snipps/string_pl.txt

------------------
Hansen
c.h@ngmedia.com

mangeMedlem sedan jan. 200230 inlägg
#4

Tackar för att du svarade på mitt inlägg...trodde nästan att alla hadde glömt sina Perl kunskaper för stt tag ;)
Har fixat problemet redan, men det var bra förslag som jag ska prova med.

Har ett annat problem i stället, ska skicka en bekräftelse med mail, men är inte riktigt säker på om jag är riktigt ute med detta script:

$to = "user\@telia.se";
$from = $form{email};
$sub = "Perl form";
format MAILCOMMENT =
To: @*
$to
From: @*
$from
Subject: @*
$sub
-----
Funkar ju bra!!
.
open (MAILCOMMENT, "&#0124; /usr/lib/sendmail -t") &#0124;&#0124; die "Cannot send mail $!\n";
write(MAILCOMMENT);
close(MAILCOMMENT);

Vet inte om jag är rätt ute, och jag hittar inget enkelt bra script på webben heller.

HansenMedlem sedan aug. 2000374 inlägg
#5

Jag brukar använda Mail::Sendmail, blir lättare att flytta runt koden mellan olika plattformar.

Jag hade skippat format i ditt exempel.

#!/usr/bin/perl -w

use strict;

my %form = (
    'namn'    => 'Christian Hansen',
    'adress'  => 'Norregatan',
    'email'   => 'ch@ngmedia.com',
    'telefon' => '+46 40 660 17 53',
);

if ( exists $form{'email'} ) {
    open SENDMAIL, "&#0124;/usr/bin/sendmail -t" or die "Kan inte öppna sendmail: $!\n";
    print SENDMAIL "To: ch\@ngmedia.com\r\n";
    print SENDMAIL "From: $form{'email'}\r\n";
    print SENDMAIL "Subject: Ett testmail\r\n\r\n";
    print SENDMAIL "Ett testmail";
    close SENDMAIL or die "Kan inte stänga sendmail: $!\n";
}

http://perl.ikubik.nu/snipps/sendmail_pl.txt

------------------
Hansen
c.h@ngmedia.com

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)