Wouldn't a quick call to Qantas to get booked onto a flight that connects to the PER-JNB flight been the best start.
Compensation level to be expected is approximately $0 though you should be able to cancel without penalty if they cannot provide a reasonable option. If you have to overnight in Perth, then since you are on a single ticket, they may pay for a hotel
If asked, they may be able to reroute you via Sydney
Dave