[quote=fritz,02.01.2006, 09:53]Ich muesste also
Output( "%04x", $device{ram_start});
schreiben nur das haut leider nicht so hin wie ich mir das vorstelle.
Als Ausgabe bekomme ich nun natuerlich 0000, und $device{ram_start}); wird nicht beruecksichtigt weil ich ja nur einmal shifte.[/quote]
Du übergibst zwei Strings, holst aber nur einen ab.
QuoteGibt es eine Moeglichkeit einen String an die Funktion zu uebergeben (z.B. "%04x", $device{ram_start};) und diesen dann in der Funktion mit printf ausfzufuehren sodass er mir das richtige ausgibt?
Nun ja, es gibt die verschiedensten Möglichkeiten, darunter etwa an die Funktion
- einen String zu übergeben (woran Du denkst)
-
zwei Strings zu übergeben (was Du
tust)
- beliebig viele Strings zu übergeben.
Weiterhin gibt es die Möglichkeit in der Funktion
- einen String anzunehmen (was Du
tust)
-
zwei Strings anzunehmen (was Du tun
solltest)
- beliebig viele Strings anzunehmen (was am flexibelsten wäre)
QuoteHoffe ihr habt alle das Problem verstanden und antwortet mir bald
Du übergibst 2 Strings.
Du nimmst nur einen an.
Dein Problem kann ich nur an dem erkennen, wie es in Deinem Text herüberkommt, und da sieht es so aus, als seiest Du davon überzeugt, nur einen String zu übergeben, während Du allerdings zwei übergibst.
In Deinem Beispiel
QuoteOutput( "%04x", $device{ram_start} );
ist das so. Das Komma trannt hier den ersten vom zweiten String. Nimm einfach beide in Deiner Funktion an. Dazu kannst Du außer der
shift-Funktion vielleicht besser das Array
@_ direkt verwenden?