Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[perl] wat doet -> precies

Pagina: 1
Acties:
  • 67 views sinds 30-01-2008

  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
Hi,

kan iemand me een linkje sturen waar uitgelegd staat hoe het gebruik van -> met variablen nou eigenlijk werkt in perl?
code:
1
$vmview->layout

Ik zoek me scheel tussen ladingen sites met perl documentatie maar het wordt wel gebruikt maar staat nergens uitgelegd,
en aangezien het speciale tekens zijn kan ik er met google niet op zoeken :(

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Value van de index layout, uit het array $vmview

Of als $vmview een klasse is, de variable layout aanspreken.

Going for adventure, lots of sun and a convertible! | GMT-8


  • Koppensneller
  • Registratie: April 2002
  • Laatst online: 20:51

Koppensneller

winterrrrrr

Ik heb geen ervaring met Perl, maar in PHP en C++ wordt '->' gebruikt om members van een pointervariabele te addresseren:

C++:
1
2
Foo f = new Foo();
f->Bar();

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 27-11 09:24
In PHP, welke erg gebasseerd is op Perl, zou in dit geval $vmview een instantie van een object zijn en layout een property danwel method van dat object (classe)

Zoeken in Google op dit soort dingen kun je overigens het best doen in de code-search

[ Voor 37% gewijzigd door frickY op 24-09-2007 16:44 ]


  • xzenor
  • Registratie: Maart 2001
  • Laatst online: 14-10-2022

xzenor

Ja doe maar. 1 klontje suiker.

Topicstarter
pfff, wordt niet veel makkelijker om te begrijpen zo :(
ik zal even een voorbeeldje geven wat ik probeer uit te lezen hiermee.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'uuid' => '564ded6a-bbff-1ccf-0b34-d79fc6e75304',
'hardware' => bless( {
                       'device' => [
                                     bless( {
                                              'device' => [
                                                            '3000'
                                                          ],
                                              'deviceInfo' => bless( {
                                                                       'summary' => 'IDE 0',
                                                                       'label' => 'IDE 0'
                                                                     }, 'Description' ),
                                              'busNumber' => '0',
                                              'key' => '200'
                                            }, 'VirtualIDEController' ),
                                     bless( {
                                              'deviceInfo' => bless( {
                                                                       'summary' => 'IDE 1',
                                                                       'label' => 'IDE 1'
                                                                     }, 'Description' ),
                                              'busNumber' => '1',
                                              'key' => '201'
                                            }, 'VirtualIDEController' ),
                                     bless( {
                                              'shares' => bless( {
                                                                   'shares' => '1000',
                                                                   'level' => bless( {
                                                                                       'val' => 'normal'
                                                                                     }, 'SharesLevel' )
                                                                 }, 'SharesInfo' ),
                                              'capacityInKB' => '8388608',
                                              'backing' => bless( {
                                                                    'writeThrough' => '0',
                                                                    'thinProvisioned' => '0',
                                                                    'datastore' => bless( {
                                                                                            'value' => 'datastore-270',
                                                                                            'type' => 'Datastore'
                                                                                          }, 'ManagedObjectReference' ),
                                                                    'fileName' => '[cx400_demo_lun1] demodb/demodb-000002.vmdk',
                                                                    'diskMode' => 'persistent'
                                                                  }, 'VirtualDiskFlatVer2BackingInfo' ),
                                              'unitNumber' => '0',
                                              'deviceInfo' => bless( {
                                                                       'summary' => '8,388,608 KB',
                                                                       'label' => 'Hard Disk 1'
                                                                     }, 'Description' ),
                                              'controllerKey' => '1000',
                                              'key' => '2000'
                                            }, 'VirtualDisk' )
                                   ],

Dit is een dump van de vmware ESX api
Nu is het uitlezen van de hele meuk niet zo'n probleem.
Eerst wat login spul en dan knal ik het op het scherm met: print($vmview->uid . "\n");
voor een 'bless' waarvan inhoud tussen { } staat wordt het een array omdat het in sommige gevallen meerdere keren voor kan komen.

Maar als ik nou alleen het deel uit wil lezen wat eindigd met }, 'VirtualDisk' ) (dus alleen het VirtualDisk deel) dan loop ik vast. Ik heb echt geen idee hoe ik dat op moet lossen en ook niet waar ik kan beginnen met zoeken.
Wijs me gerust naar wat handige sites waar ik het zelf op kan zoeken, want daar ben ik heus niet te lui voor, maar ik zit gewoon echt vast nu. Het lijkt mij een label van de array, maar hij staat er achter, dus ik kan er niets meer mee met de manieren die ik zelf gewend ben....

Als ik erg onduidelijk ben of er meer info nodig is dan wil ik die best posten, maar het zijn nogal wat lappen text allemaal......

Verwijderd

Groot verschil tussen -> en =>....

PHP:
1
2
$bla = array('key1' => 'value1', 'key2' => 'value2');
// Dit maakt een array aan met 2 keys + waarden


PHP:
1
2
3
$bla = new SomeObject();
$bla->Myfunction(); // Functie aanroep
$bla->MyVariable = 'testme'; // Variabele


Ik ken weliswaar geen perl, maar het lijkt erop dat er een array gevuld wordt in je voorbeeld code. Hopelijk dat dit je verder helpt...

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
possamai schreef op maandag 24 september 2007 @ 17:03:
pfff, wordt niet veel makkelijker om te begrijpen zo :(
ik zal even een voorbeeldje geven wat ik probeer uit te lezen hiermee.
Dat lijkt wel een JSON-achtig iets ;)

[ Voor 10% gewijzigd door RobIII op 25-09-2007 15:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 21:42
Het lijkt mij dat het een object is (VirtualDisk). Het is het laatste element in een array 'device' van drie objecten.

code:
1
print $bla->hardware->device[2]->capacityInKB

  • Keiichi
  • Registratie: Juni 2005
  • Laatst online: 00:04
Gebruik iets in de trend van

$hash->{'key'}

Solar @ Dongen: http://solar.searchy.net/ - Penpal International: http://ppi.searchy.net/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:14
Mja, eigenlijk is dit gewoon een beetje zelf moeite doen, en even in de syntax-guide kijken.

http://docs.rinet.ru/ProPauk/ch9.htm

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.