#!/usr/bin/perl # use strict; use RPi::Pin; use RPi::Const qw(:all); my $pin4 = RPi::Pin->new(4); $pin4->mode(INPUT); $pin4->set_interrupt(EDGE_RISING, "main::pin4_interrupt_handler"); my $pin19 = RPi::Pin->new(19); $pin19->mode(OUTPUT); $pin19->write(LOW); my $pin4prev = 0; my $cnt = 0; while (1) { my $num = $pin4->num; my $mode = $pin4->mode; my $state = $pin4->read; if ($state != $pin4prev) { print "pin number $num is in mode $mode with state $state\n"; $pin4prev = $state; } my $val = ($cnt % 2); $num = $pin19->num; $mode = $pin19->mode; $pin19->write($val); sleep(1); $cnt++; } sub pin4_interrupt_handler { print "in pin4 interrupt handler\n"; }