Wie rufe ich mit PHP eine Perl Funktion auf?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie rufe ich mit PHP eine Perl Funktion auf?

    Es geht immer noch darum, dass ich einen Account in einem Perl Board (Ikonboard) mit PHP erstellen will. Soweit klappt das ganz gut. Nun suche ich aber nach einer Möglichkeit die Board Stars gleichzeitig aktualisieren zu lassen. Leider habe von Perl absolut keinen Schimmer! Daher hoffe ich ihr könnt mir vielleicht ein paar Fragen beantworten:

    Wie kann ich mit PHP eine cgi Datei / eine cgi Funktion ausführen?

    Also die Funktion sieht im original so aus: (Ausschitte aus der FUNC.pm)
    Code:
    package FUNC::STD;
    use strict;
    [...]
    BEGIN {
        require 'Boardinfo.pm' or die "Cannot load Module: $!";
        require 'Default/Universal.pm' or die $!;
    }
    
    use Time::localtime;
    my $INFO = Boardinfo->new();
    
    
    sub new {
        my $pkg = shift;
        my $obj = {};
        bless $obj, $pkg;
        $Universal::lang = $obj->LoadLanguage('UniversalWords');
        return $obj;
    }
    [...]
    sub ib_stats {
        my ($obj, $values) = @_;
        return $values ? $obj->_update_stats($values) : $obj->_load_stats;
        
    }
    
    sub _update_stats {
        my ($obj, $values) = @_;
        # If we are resetting, there is no need to reload.
        $obj->_save_stats($values) if $values->{'RESET'};
    
        my $s = $obj->_load_stats;
        
        # Figure out what we're doing
        for my $w (qw!TOTAL_REPLIES TOTAL_TOPICS TOTAL_MEMBERS!) {
            next unless $values->{$w};
            # An arg of '+3' is passed to one of
            # MEMBERS, POSTS, TOPICS (example!)
            $values->{$w} =~ m!^(\+|-)(\S+)$!;
            # Add, or subtract the value of $2
    		$s->{$w} = $1 eq '+' ? $s->{$w} + $2 : $s->{$w} - $2;
            # Ensure they go no lower than 0
            $s->{$w} = 0 if $s->{$w} < 0;
        }
        
        $s->{'LAST_REG_MEMBER_ID'} = $values->{'LAST_REG_MEMBER_ID'} if $values->{'LAST_REG_MEMBER_ID'};
        $s->{'LAST_REG_MEMBER_N'}  = $values->{'LAST_REG_MEMBER_N'}  if $values->{'LAST_REG_MEMBER_N'};
        $s->{'M_ONLINE_COUNT'}     = $values->{'M_ONLINE_COUNT'}     if $values->{'M_ONLINE_COUNT'};
        $s->{'M_ONLINE_DATE'}      = $values->{'M_ONLINE_DATE'}      if $values->{'M_ONLINE_DATE'};
    
        $obj->_save_stats($s);
        return '0 but true';
    }
    [...]
    Ich denke mal, dass ich erst ein Objekt erstellen muss um die Funktion nutzen zu können. Aber wie führe ich Funktion "ib_stats" dann aus?

    [Editiert von FBeye am 21-01-2002 um 03:18]

  • #2
    Wollte hier eigentlich einen getrennten Post aufmachen. Jetzt ist der Hauptpost aber schon hier gelandet - egal


    Also ich hab mal einfach ein paar Zeilen zu ner Datei zusammen geklebt:

    Code:
    #!/usr/bin/perl
    package iB;
    #$| = 1;
    use strict;
    
    BEGIN {
       require 'Lib/FUNC.pm';
    }
    
    my $std         = FUNC::STD->new();
    
    sub new {
      my $pkg = shift;
      my $obj = {};
      bless $obj, $pkg;
      return $obj;
    }
    
    $std->ib_stats();
    
    1;
    HTTP Error 500. Währe ja auch zu schön gewesen. Also an alle die Perl können: Wie muss die Datei aussehen um die "_update_stats" Funktion aus zu führen?

    Kommentar

    Lädt...
    X