#!/usr/bin/perl use v5.12; use strict; use warnings; use Data::Dump qw(dump); use Net::DBus qw(:typing); my $app_name = "password-extract-in-perl"; my $bus = Net::DBus->find() or die "Can't find DBus"; my $kwallet_service = $bus->get_service('org.kde.kwalletd') or die "Can't get kwallet"; my $KWallet = $kwallet_service->get_object('/modules/kwalletd', 'org.kde.KWallet') or die "Can't find networkWallet"; my $networkWallet = $KWallet->networkWallet(); say "Network Wallet = $networkWallet"; my $kwallet_handle = $KWallet->open($networkWallet, 0, $app_name); say "Opened = $kwallet_handle"; my $folders = $KWallet->folderList($kwallet_handle,$app_name); say "Folders = ", dump($folders); my $u = $KWallet->readPassword($kwallet_handle, 'MyFolder','Some_Userid_Key', $app_name); my $p = $KWallet->readPassword($kwallet_handle, 'MyFolder','Some_Password_Key', $app_name); say "User ID = ", dump($u); say "Password = ", dump($p);